Skip to content

Instantly share code, notes, and snippets.

@michelealbano
Created March 24, 2020 20:11
Show Gist options
  • Save michelealbano/51e40ca2c403969bf98fb1ef7e2520c5 to your computer and use it in GitHub Desktop.
Save michelealbano/51e40ca2c403969bf98fb1ef7e2520c5 to your computer and use it in GitHub Desktop.
execute all tests for the C-libcurl generator
#!/usr/bin/python
import sys
import glob
import re
import os
import subprocess
import shutil
path_to_openapi_generator_cli = " /mnt/hgfs/shared/onetime.openapi/openapi-generator/modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if len(sys.argv) < 2:
print("usage: {progname} filepath\n\texample: /ciao/hallo.yaml uella.yaml /mnt/modellino.yml".format(progname = sys.argv[0]))
sys.exit(0)
fileslist = sys.argv[1:]
for filename in fileslist:
base=os.path.basename(filename)
foldername = os.path.splitext(base)[0]
try:
os.mkdir(foldername)
except OSError:
pass
os.chdir(foldername)
comando_generate = "java -jar " + path_to_openapi_generator_cli + " generate -g c -i " + filename
subprocess.call(comando_generate.split())
try:
os.mkdir("build")
except OSError:
pass
os.chdir("build")
subprocess.call("cmake ..".split())
subprocess.call("make")
os.chdir("../unit-test")
# subprocess.call("cp ../build/lib* .".split())
rememberFileLibrary = ""
for fileLibrary in glob.glob(r'../build/lib*.so'):
shutil.copy(fileLibrary, ".")
rememberFileLibrary = fileLibrary
# subprocess.call("for i in *.c ; do gcc -L. -I. $i lib*.so ; ./a.out ; done".split())
for fileTest in glob.glob(r'test*.c'):
subprocess.call(("gcc -L. -I. " + fileTest + " " + rememberFileLibrary).split())
subprocess.call("./a.out")
os.chdir("..")
os.chdir("..")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment