@@ -17,8 +17,15 @@ import
1717include
1818 ../ json_serialization/ lexer
1919
20- proc yCase (fileName, name: string ): bool {.raises :[IOError ].} =
21- var stream = memFileInput (fileName)
20+ proc inputFile (fileName: string ): InputStream {.raises : [IOError ].} =
21+ when nimvm :
22+ let data = staticRead (pathRelativeTo (fileName, " tests" ))
23+ unsafeMemoryInput (data)
24+ else :
25+ memFileInput (fileName)
26+
27+ proc yCase (fileName, name: string ): bool {.raises : [IOError ].} =
28+ var stream = inputFile (fileName)
2229 var lex = init (JsonLexer , stream)
2330 var value: string
2431 lex.scanValue (value)
@@ -28,8 +35,8 @@ proc yCase(fileName, name: string): bool {.raises:[IOError].} =
2835 return false
2936 true
3037
31- proc nCase (fileName, name: string ): bool {.raises :[IOError ].} =
32- var stream = memFileInput (fileName)
38+ proc nCase (fileName, name: string ): bool {.raises : [IOError ].} =
39+ var stream = inputFile (fileName)
3340 var lex = init (JsonLexer , stream, {})
3441 var value: string
3542 lex.scanValue (value)
@@ -43,19 +50,33 @@ proc nCase(fileName, name: string): bool {.raises:[IOError].} =
4350 return false
4451 true
4552
46- for fileName in walkDirRec (parsingPath):
47- let (_, name) = fileName.splitPath ()
48- if name.startsWith (" y_" ):
49- doAssert yCase (fileName, name)
50- elif name.startsWith (" n_" ):
51- doAssert nCase (fileName, name)
52- # test cases starts with i_ are allowed to
53- # fail or success depending on the implementation details
54- elif name.startsWith (" i_" ):
53+ proc test () {.raises : [OSError , IOError ].} =
54+ var checked = 0
55+ for fileName in walkDirRec (parsingPath):
56+ let (_, name) = fileName.splitPath ()
57+ if name.startsWith (" y_" ):
58+ doAssert yCase (fileName, name)
59+ inc checked
60+ elif name.startsWith (" n_" ):
61+ doAssert nCase (fileName, name)
62+ inc checked
63+ # test cases starts with i_ are allowed to
64+ # fail or success depending on the implementation details
65+ elif name.startsWith (" i_" ):
66+ if name notin allowedToFail:
67+ doAssert yCase (fileName, name)
68+ inc checked
69+
70+ for fileName in walkDirRec (transformPath):
71+ let (_, name) = fileName.splitPath ()
5572 if name notin allowedToFail:
5673 doAssert yCase (fileName, name)
74+ inc checked
75+
76+ doAssert checked == 328 , $ checked
5777
58- for fileName in walkDirRec (transformPath):
59- let (_, name) = fileName.splitPath ()
60- if name notin allowedToFail:
61- doAssert yCase (fileName, name)
78+ static :
79+ test ()
80+ echo " static ok"
81+ test ()
82+ echo " ok"
0 commit comments