Add some tests (#18333)

This commit is contained in:
Antonis Geralis
2021-06-23 18:56:20 +03:00
committed by GitHub
parent 0eee7f5727
commit 63456c6d7f

View File

@@ -1,10 +1,78 @@
discard """
cmd: '''nim c --gc:arc $file'''
output: '''@[1]
@[116, 101, 115, 116]
@[1953719668, 875770417]'''
cmd: '''nim c --gc:arc --expandArc:main --expandArc:main1 --expandArc:main2 --expandArc:main3 --hints:off --assertions:off $file'''
nimout: '''--expandArc: main
var
data
:tmpD
`=copy`(data, cast[string](encode(cast[seq[byte]](
:tmpD = newString(100)
:tmpD))))
`=destroy`(:tmpD)
`=destroy`(data)
-- end of expandArc ------------------------
--expandArc: main1
var
s
data
s = newString(100)
`=copy`(data, cast[string](encode(toOpenArrayByte(s, 0, len(s) - 1))))
`=destroy`(data)
`=destroy`(s)
-- end of expandArc ------------------------
--expandArc: main2
var
s
data
s = newSeq(100)
`=copy`(data, cast[string](encode(s)))
`=destroy`(data)
`=destroy_1`(s)
-- end of expandArc ------------------------
--expandArc: main3
var
data
:tmpD
`=copy`(data, cast[string](encode do:
:tmpD = newSeq(100)
:tmpD))
`=destroy`(:tmpD)
`=destroy_1`(data)
-- end of expandArc ------------------------'''
"""
func encode*(src: openArray[byte]): seq[byte] =
result = newSeq[byte](src.len)
template compress*(src: string): string =
cast[string](encode(cast[seq[byte]](src)))
proc main =
let data = compress(newString(100))
main()
proc main1 =
var
s = newString(100)
let data = cast[string](encode(s.toOpenArrayByte(0, s.len-1)))
main1()
proc main2 =
var
s = newSeq[byte](100)
let data = cast[string](encode(s))
main2()
proc main3 =
let data = cast[string](encode(newSeq[byte](100)))
main3()
# bug #11018
discard cast[seq[uint8]](@[1])
discard cast[seq[uint8]]("test")
@@ -20,4 +88,4 @@ echo a
#issue 11204
var ac {.compileTime.} = @["a", "b"]
const bc = ac.len
const bc = ac.len