This commit is contained in:
2021-10-24 22:31:53 +02:00
commit b6f2b3b84c

85
test.py Normal file
View File

@@ -0,0 +1,85 @@
# one
one = {
'defs': [
'int f(auto b){return 0;};',
'int f(long b){return 0;};',
'int f(void* b){return 0;};',
'int f(){return 0;};',
],
'tests' : [
'int A = f();',
'int B = f(0);',
'int C = f({});',
'int D = f(nullptr);',
], 'url': 'https://cppcon.digital-medium.co.uk/v3bqsv/'
}
three = {
'defs': [
'int f(int b){return 0;}',
'int f(int b=0){return 0;}',
'int f(void* b){return 0;}',
'int f(){return 0;}',
'int f(long b){return 0;}',
],
'tests': [
'int A = f();',
'int B = f(0);',
'int C = f(1);',
'int D = f({});',
'int E = f(nullptr);',
],
'url': 'https://cppcon.digital-medium.co.uk/urea44/'
}
four = {
'defs': [
'int f(int b){return 0;}',
'int f(int b=0){return 0;}',
'int f(void* b){return 0;}',
'int f(){return 0;}',
'int f(long b){return 0;}',
],
'tests': [
'int A = f();',
'int B = f(0);',
'int C = f(1);',
'int D = f({});',
'int E = f(nullptr);',
],
'url': 'https://cppcon.digital-medium.co.uk/j2hv4d/'
}
import subprocess
import tempfile
for a in [one, three, four]:
print (a['url'])
defs = a['defs']
tests = a['tests']
for i, d in enumerate(defs, start=1):
buffer = d
sol = ''
for test in tests:
tbuffer = buffer + 'int main(){' + test + 'return 0;}'
with tempfile.NamedTemporaryFile(mode='w+', encoding='utf8', suffix='.cpp') as fp:
fp.write(tbuffer)
fp.flush()
#print(subprocess.check_output(["cat", fp.name]))
print(' ' + tbuffer, end="")
try:
subprocess.check_call(["clang++", "-std=c++20", fp.name])
subprocess.check_call(['./a.out'])
sol += test[4]
except:
print('XXX')
continue
print()
print(str(i) + " " + sol)