From b6f2b3b84c2887b98a122a0156faf86b687f5db8 Mon Sep 17 00:00:00 2001 From: Matthias Bilger Date: Sun, 24 Oct 2021 22:31:53 +0200 Subject: [PATCH] all --- test.py | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 test.py diff --git a/test.py b/test.py new file mode 100644 index 0000000..80aa230 --- /dev/null +++ b/test.py @@ -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) + +