make tests green again; closes #5861

This commit is contained in:
Andreas Rumpf 2017-10-10 09:18:31 +02:00
commit 55cb959a68
4 changed files with 19 additions and 19 deletions

View file

@ -76,10 +76,10 @@ proc `==`(a, b: StaticStr): bool =
return true return true
proc `==`(a: StaticStr, b: cstring): bool = proc `==`(a: StaticStr, b: cstring): bool =
result = c_strcmp(a.data, b) == 0 result = c_strcmp(unsafeAddr a.data, b) == 0
proc write(f: File, s: StaticStr) = proc write(f: File, s: StaticStr) =
write(f, cstring(s.data)) write(f, cstring(unsafeAddr s.data))
proc listBreakPoints() = proc listBreakPoints() =
write(stdout, EndbBeg) write(stdout, EndbBeg)
@ -260,8 +260,8 @@ proc parseBreakpoint(s: cstring, start: int): Breakpoint =
if result.high == 0: result.high = result.low if result.high == 0: result.high = result.low
i = scanFilename(s, dbgTemp, i) i = scanFilename(s, dbgTemp, i)
if dbgTemp.len != 0: if dbgTemp.len != 0:
if not hasExt(dbgTemp.data): add(dbgTemp, ".nim") if not hasExt(addr dbgTemp.data): add(dbgTemp, ".nim")
result.filename = canonFilename(dbgTemp.data.cstring) result.filename = canonFilename(addr dbgTemp.data)
if result.filename.isNil: if result.filename.isNil:
debugOut("[Warning] no breakpoint could be set; unknown filename ") debugOut("[Warning] no breakpoint could be set; unknown filename ")
return return
@ -292,12 +292,12 @@ proc dbgEvaluate(stream: File, s: cstring, start: int, f: PFrame) =
i = scanAndAppendWord(s, dbgTemp, i) i = scanAndAppendWord(s, dbgTemp, i)
for i in 0 .. getGlobalLen()-1: for i in 0 .. getGlobalLen()-1:
let v = getGlobal(i) let v = getGlobal(i)
if c_strcmp(v.name, dbgTemp.data) == 0: if c_strcmp(v.name, addr dbgTemp.data) == 0:
writeVariable(stream, v) writeVariable(stream, v)
else: else:
for i in 0 .. f.len-1: for i in 0 .. f.len-1:
let v = getLocal(f, i) let v = getLocal(f, i)
if c_strcmp(v.name, dbgTemp.data) == 0: if c_strcmp(v.name, addr dbgTemp.data) == 0:
writeVariable(stream, v) writeVariable(stream, v)
proc dbgOut(s: cstring, start: int, currFrame: PFrame) = proc dbgOut(s: cstring, start: int, currFrame: PFrame) =
@ -306,7 +306,7 @@ proc dbgOut(s: cstring, start: int, currFrame: PFrame) =
if dbgTemp.len == 0: if dbgTemp.len == 0:
invalidCommand() invalidCommand()
return return
var stream = openAppend(dbgTemp.data) var stream = openAppend(addr dbgTemp.data)
if stream == nil: if stream == nil:
debugOut("[Warning] could not open or create file ") debugOut("[Warning] could not open or create file ")
return return
@ -320,7 +320,7 @@ proc dbgStackFrame(s: cstring, start: int, currFrame: PFrame) =
# just write it to stdout: # just write it to stdout:
listFrame(stdout, currFrame) listFrame(stdout, currFrame)
else: else:
var stream = openAppend(dbgTemp.data) var stream = openAppend(addr dbgTemp.data)
if stream == nil: if stream == nil:
debugOut("[Warning] could not open or create file ") debugOut("[Warning] could not open or create file ")
return return
@ -369,7 +369,7 @@ proc commandPrompt() =
if not readLine(stdin, dbgUser): break if not readLine(stdin, dbgUser): break
if dbgUser.len == 0: dbgUser.len = oldLen if dbgUser.len == 0: dbgUser.len = oldLen
# now look what we have to do: # now look what we have to do:
var i = scanWord(dbgUser.data, dbgTemp, 0) var i = scanWord(addr dbgUser.data, dbgTemp, 0)
template `?`(x: expr): expr = dbgTemp == cstring(x) template `?`(x: expr): expr = dbgTemp == cstring(x)
if ?"s" or ?"step": if ?"s" or ?"step":
dbgState = dbStepInto dbgState = dbStepInto
@ -400,13 +400,13 @@ proc commandPrompt() =
prevState = dbgState prevState = dbgState
prevSkipFrame = dbgSkipToFrame prevSkipFrame = dbgSkipToFrame
dbgState = dbSkipCurrent dbgState = dbSkipCurrent
dbgEvaluate(stdout, dbgUser.data, i, dbgFramePtr) dbgEvaluate(stdout, addr dbgUser.data, i, dbgFramePtr)
dbgState = prevState dbgState = prevState
dbgSkipToFrame = prevSkipFrame dbgSkipToFrame = prevSkipFrame
elif ?"o" or ?"out": elif ?"o" or ?"out":
dbgOut(dbgUser.data, i, dbgFramePtr) dbgOut(addr dbgUser.data, i, dbgFramePtr)
elif ?"stackframe": elif ?"stackframe":
dbgStackFrame(dbgUser.data, i, dbgFramePtr) dbgStackFrame(addr dbgUser.data, i, dbgFramePtr)
elif ?"w" or ?"where": elif ?"w" or ?"where":
dbgShowExecutionPoint() dbgShowExecutionPoint()
elif ?"l" or ?"locals": elif ?"l" or ?"locals":
@ -444,16 +444,16 @@ proc commandPrompt() =
elif ?"bt" or ?"backtrace": elif ?"bt" or ?"backtrace":
dbgWriteStackTrace(framePtr) dbgWriteStackTrace(framePtr)
elif ?"b" or ?"break": elif ?"b" or ?"break":
createBreakPoint(dbgUser.data, i) createBreakPoint(addr dbgUser.data, i)
elif ?"breakpoints": elif ?"breakpoints":
listBreakPoints() listBreakPoints()
elif ?"toggle": elif ?"toggle":
breakpointToggle(dbgUser.data, i) breakpointToggle(addr dbgUser.data, i)
elif ?"filenames": elif ?"filenames":
listFilenames() listFilenames()
elif ?"maxdisplay": elif ?"maxdisplay":
var parsed: int var parsed: int
i = scanNumber(dbgUser.data, parsed, i) i = scanNumber(addr dbgUser.data, parsed, i)
if dbgUser.data[i-1] in {'0'..'9'}: if dbgUser.data[i-1] in {'0'..'9'}:
if parsed == 0: maxDisplayRecDepth = -1 if parsed == 0: maxDisplayRecDepth = -1
else: maxDisplayRecDepth = parsed else: maxDisplayRecDepth = parsed

View file

@ -62,7 +62,7 @@ proc launchSwarm(name: ptr SockAddr) {.async.} =
16384, cast[ptr SockAddr](addr saddr), 16384, cast[ptr SockAddr](addr saddr),
addr slen) addr slen)
size = 0 size = 0
var grammString = $buffer.cstring var grammString = $cstring(addr buffer)
if grammString == message: if grammString == message:
saveSendingPort(sockport) saveSendingPort(sockport)
inc(recvCount) inc(recvCount)
@ -84,7 +84,7 @@ proc readMessages(server: AsyncFD) {.async.} =
16384, cast[ptr SockAddr](addr(saddr)), 16384, cast[ptr SockAddr](addr(saddr)),
addr(slen)) addr(slen))
size = 0 size = 0
var grammString = $buffer.cstring var grammString = $cstring(addr buffer)
if grammString.startswith("Message ") and if grammString.startswith("Message ") and
saddr.sin_addr.s_addr == 0x100007F: saddr.sin_addr.s_addr == 0x100007F:
await sendTo(server, addr grammString[0], len(grammString), await sendTo(server, addr grammString[0], len(grammString),

View file

@ -9,7 +9,7 @@ proc c_sprintf(buf, fmt: cstring) {.importc:"sprintf", header: "<stdio.h>", vara
proc floatToStr(f: float64): string = proc floatToStr(f: float64): string =
var buffer: array[128, char] var buffer: array[128, char]
c_sprintf(buffer, "%.16e", f) c_sprintf(addr buffer, "%.16e", f)
result = "" result = ""
for ch in buffer: for ch in buffer:
if ch == '\0': if ch == '\0':

View file

@ -50,4 +50,4 @@ import strutils
let arr = ['H','e','l','l','o',' ','W','o','r','l','d','!','\0'] let arr = ['H','e','l','l','o',' ','W','o','r','l','d','!','\0']
doAssert $arr == "[H, e, l, l, o, , W, o, r, l, d, !, \0]" doAssert $arr == "[H, e, l, l, o, , W, o, r, l, d, !, \0]"
doAssert $arr.cstring == "Hello World!" doAssert $cstring(unsafeAddr arr) == "Hello World!"