]> Git Repo - VerusCoin.git/commitdiff
tests: fix python test-runner for windows
authorCory Fields <[email protected]>
Tue, 30 Sep 2014 20:05:27 +0000 (16:05 -0400)
committerCory Fields <[email protected]>
Tue, 30 Sep 2014 20:26:22 +0000 (16:26 -0400)
Windows needed a few fixups to get the tests running:
1. bitcoin-tx needs a file extension in Windows. Take this opportunity to
   add an env file, which pulls variables out of our build config. This can
   be extended as needed, for now it's very simple.
2. After #1, split the args out of the exec key in the test data.
3. Correct the line-endings from windows stdout

configure.ac
src/test/bctest.py
src/test/bitcoin-util-test.py
src/test/buildenv.py.in [new file with mode: 0644]
src/test/data/bitcoin-util-test.json

index 0f9e78b74fbe38d01a2e3773e74477c1adc6cb22..7025249abab061b0621f4ef714654a64816e7877 100644 (file)
@@ -793,7 +793,7 @@ AC_SUBST(BUILD_TEST)
 AC_SUBST(BUILD_QT)
 AC_SUBST(BUILD_TEST_QT)
 AC_SUBST(MINIUPNPC_CPPFLAGS)
-AC_CONFIG_FILES([Makefile src/Makefile share/setup.nsi share/qt/Info.plist])
+AC_CONFIG_FILES([Makefile src/Makefile share/setup.nsi share/qt/Info.plist src/test/buildenv.py])
 AC_CONFIG_FILES([qa/pull-tester/run-bitcoind-for-test.sh],[chmod +x qa/pull-tester/run-bitcoind-for-test.sh])
 AC_CONFIG_FILES([qa/pull-tester/build-tests.sh],[chmod +x qa/pull-tester/build-tests.sh])
 AC_OUTPUT
index 1839f4fef460c7b14219e159dd1c1aa79cca6b9b..ef461014eab1c342ee006ebfb4fb5599a762a0ec 100644 (file)
@@ -7,9 +7,11 @@ import os
 import json
 import sys
 
-def bctest(testDir, testObj):
-       execargs = testObj['exec']
+def bctest(testDir, testObj, exeext):
 
+       execprog = testObj['exec'] + exeext
+       execargs = testObj['args']
+       execrun = [execprog] + execargs
        stdinCfg = None
        inputData = None
        if "input" in testObj:
@@ -22,12 +24,11 @@ def bctest(testDir, testObj):
        if "output_cmp" in testObj:
                outputFn = testObj['output_cmp']
                outputData = open(testDir + "/" + outputFn).read()
-
-       proc = subprocess.Popen(execargs, stdin=stdinCfg, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+       proc = subprocess.Popen(execrun, stdin=stdinCfg, stdout=subprocess.PIPE, stderr=subprocess.PIPE,universal_newlines=True)
        try:
                outs = proc.communicate(input=inputData)
        except OSError:
-               print("OSError, Failed to execute " + execargs[0])
+               print("OSError, Failed to execute " + execprog)
                sys.exit(1)
 
        if outputData and (outs[0] != outputData):
@@ -41,13 +42,13 @@ def bctest(testDir, testObj):
                print("Return code mismatch for " + outputFn)
                sys.exit(1)
 
-def bctester(testDir, input_basename):
+def bctester(testDir, input_basename, buildenv):
        input_filename = testDir + "/" + input_basename
        raw_data = open(input_filename).read()
        input_data = json.loads(raw_data)
 
        for testObj in input_data:
-               bctest(testDir, testObj)
+               bctest(testDir, testObj, buildenv.exeext)
 
        sys.exit(0)
 
index 40690c2fed891f40d458bf4419a9e1876aeadeab..0eece14cfe3a3e57ef2085dbe93b01494bf3ac74 100755 (executable)
@@ -5,8 +5,9 @@
 
 import os
 import bctest
+import buildenv
 
 if __name__ == '__main__':
        bctest.bctester(os.environ["srcdir"] + "/test/data",
-                       "bitcoin-util-test.json")
+                       "bitcoin-util-test.json",buildenv)
 
diff --git a/src/test/buildenv.py.in b/src/test/buildenv.py.in
new file mode 100644 (file)
index 0000000..1618bde
--- /dev/null
@@ -0,0 +1,2 @@
+#!/usr/bin/python
+exeext="@EXEEXT@"
index cb74d73ef2aefa0358083cddc272f2e4277a61e2..f8424b72a34c03c8f3eb50a4d888de9949bf9db8 100644 (file)
@@ -1,33 +1,41 @@
 [
-  { "exec": ["./bitcoin-tx", "-create"],
+  { "exec": "././bitcoin-tx",
+    "args": ["-create"],
     "output_cmp": "blanktx.hex"
   },
-  { "exec": ["./bitcoin-tx", "-"],
+  { "exec": "./bitcoin-tx",
+    "args": ["-"],
     "input": "blanktx.hex",
     "output_cmp": "blanktx.hex"
   },
-  { "exec": ["./bitcoin-tx", "-", "delin=1"],
+  { "exec": "./bitcoin-tx",
+    "args": ["-", "delin=1"],
     "input": "tx394b54bb.hex",
     "output_cmp": "tt-delin1-out.hex"
   },
-  { "exec": ["./bitcoin-tx", "-", "delin=31"],
+  { "exec": "./bitcoin-tx",
+    "args": ["-", "delin=31"],
     "input": "tx394b54bb.hex",
     "return_code": 1
   },
-  { "exec": ["./bitcoin-tx", "-", "delout=1"],
+  { "exec": "./bitcoin-tx",
+    "args": ["-", "delout=1"],
     "input": "tx394b54bb.hex",
     "output_cmp": "tt-delout1-out.hex"
   },
-  { "exec": ["./bitcoin-tx", "-", "delout=2"],
+  { "exec": "./bitcoin-tx",
+    "args": ["-", "delout=2"],
     "input": "tx394b54bb.hex",
     "return_code": 1
   },
-  { "exec": ["./bitcoin-tx", "-", "locktime=317000"],
+  { "exec": "./bitcoin-tx",
+    "args": ["-", "locktime=317000"],
     "input": "tx394b54bb.hex",
     "output_cmp": "tt-locktime317000-out.hex"
   },
-  { "exec":
-    ["./bitcoin-tx", "-create",
+  { "exec": "./bitcoin-tx",
+    "args":
+    ["-create",
      "in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
      "in=bf829c6bcf84579331337659d31f89dfd138f7f7785802d5501c92333145ca7c:18",
      "in=22a6f904655d53ae2ff70e701a0bbd90aa3975c0f40bfc6cc996a9049e31cdfc:1",
@@ -35,7 +43,8 @@
      "outaddr=4:1P8yWvZW8jVihP1bzHeqfE4aoXNX8AVa46"],
     "output_cmp": "txcreate1.hex"
   },
-  { "exec": ["./bitcoin-tx", "-create", "outscript=0:"],
+  { "exec": "./bitcoin-tx",
+    "args": ["-create", "outscript=0:"],
     "output_cmp": "txcreate2.hex"
   }
 ]
This page took 0.034643 seconds and 4 git commands to generate.