{
  "__version__": [
    18,
    1,
    3
  ],
  "elapsed": 0.1223592758178711,
  "tests": [
    {
      "code": "PASS",
      "elapsed": 0.11270427703857422,
      "name": "compiler :: schedule_atomic_commit_replay.c",
      "output": "Exit Code: 0\n\nCommand Output (stdout):\n--\n# RUN: at line 1\nenv SYMCC_DPOR_ATOMIC_ONLY=1 SYMCC_DPOR_SCHEDULE_ONLY=1 /home/ubuntu/code/symcc/build/test/../symcc -O0 -S -emit-llvm /home/ubuntu/code/symcc/test/schedule_atomic_commit_replay.c -o /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.ll -pthread\n# executed command: env SYMCC_DPOR_ATOMIC_ONLY=1 SYMCC_DPOR_SCHEDULE_ONLY=1 /home/ubuntu/code/symcc/build/test/../symcc -O0 -S -emit-llvm /home/ubuntu/code/symcc/test/schedule_atomic_commit_replay.c -o /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.ll -pthread\n# RUN: at line 2\ngrep -q \"load atomic\" /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.ll\n# executed command: grep -q 'load atomic' /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.ll\n# RUN: at line 3\ngrep -q \"store atomic\" /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.ll\n# executed command: grep -q 'store atomic' /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.ll\n# RUN: at line 4\nenv SYMCC_DPOR_ATOMIC_ONLY=1 SYMCC_DPOR_SCHEDULE_ONLY=1 /home/ubuntu/code/symcc/build/test/../symcc -O0 /home/ubuntu/code/symcc/test/schedule_atomic_commit_replay.c -o /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp -pthread\n# executed command: env SYMCC_DPOR_ATOMIC_ONLY=1 SYMCC_DPOR_SCHEDULE_ONLY=1 /home/ubuntu/code/symcc/build/test/../symcc -O0 /home/ubuntu/code/symcc/test/schedule_atomic_commit_replay.c -o /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp -pthread\n# RUN: at line 5\npython3 -c \"open(r'/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.reader-first.prefix','w').write('2\\n1\\n')\"\n# executed command: python3 -c 'open(r'\"'\"'/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.reader-first.prefix'\"'\"','\"'\"'w'\"'\"').write('\"'\"'2\\n1\\n'\"'\"')'\n# RUN: at line 6\npython3 -c \"open(r'/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.writer-first.prefix','w').write('1\\n2\\n')\"\n# executed command: python3 -c 'open(r'\"'\"'/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.writer-first.prefix'\"'\"','\"'\"'w'\"'\"').write('\"'\"'1\\n2\\n'\"'\"')'\n# RUN: at line 7\nrm -f /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.reader-first.trace /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.writer-first.trace\n# executed command: rm -f /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.reader-first.trace /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.writer-first.trace\n# RUN: at line 8\nenv LD_PRELOAD=/home/ubuntu/code/symcc/build/libsymcc_schedule_rt.so SYMCC_DPOR=1 SYMCC_SCHEDULE_MEMORY=1 SYMCC_SCHEDULE_ATOMIC_COMMIT=1 SYMCC_SCHEDULE_WAIT_MS=2000 SYMCC_SCHEDULE_PREFIX=/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.reader-first.prefix SYMCC_SCHEDULE_TRACE=/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.reader-first.trace /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp\n# executed command: env LD_PRELOAD=/home/ubuntu/code/symcc/build/libsymcc_schedule_rt.so SYMCC_DPOR=1 SYMCC_SCHEDULE_MEMORY=1 SYMCC_SCHEDULE_ATOMIC_COMMIT=1 SYMCC_SCHEDULE_WAIT_MS=2000 SYMCC_SCHEDULE_PREFIX=/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.reader-first.prefix SYMCC_SCHEDULE_TRACE=/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.reader-first.trace /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp\n# RUN: at line 9\nenv LD_PRELOAD=/home/ubuntu/code/symcc/build/libsymcc_schedule_rt.so SYMCC_DPOR=1 SYMCC_SCHEDULE_MEMORY=1 SYMCC_SCHEDULE_ATOMIC_COMMIT=1 SYMCC_SCHEDULE_WAIT_MS=2000 SYMCC_SCHEDULE_PREFIX=/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.writer-first.prefix SYMCC_SCHEDULE_TRACE=/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.writer-first.trace /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp\n# executed command: env LD_PRELOAD=/home/ubuntu/code/symcc/build/libsymcc_schedule_rt.so SYMCC_DPOR=1 SYMCC_SCHEDULE_MEMORY=1 SYMCC_SCHEDULE_ATOMIC_COMMIT=1 SYMCC_SCHEDULE_WAIT_MS=2000 SYMCC_SCHEDULE_PREFIX=/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.writer-first.prefix SYMCC_SCHEDULE_TRACE=/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.writer-first.trace /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp\n# RUN: at line 10\npython3 -c \"rows=[l.split() for l in open(r'/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.reader-first.trace')]; tags=lambda r:set(r[4:]); commits=[r for r in rows if r[2]=='atomic_commit']; values=[r for r in rows if r[2]=='atomic_value']; assert sum('advanced=1' in tags(r) for r in commits)==2, commits; assert not any(r[2] in {'fallback','atomic_pending_conflict'} or (r[2]=='atomic_commit' and 'mismatch=1' in tags(r)) for r in rows); assert any(r[2]=='atomic_value' and 'role=read' in tags(r) and 'value=0x0' in tags(r) for r in values), values\"\n# executed command: python3 -c 'rows=[l.split() for l in open(r'\"'\"'/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.reader-first.trace'\"'\"')]; tags=lambda r:set(r[4:]); commits=[r for r in rows if r[2]=='\"'\"'atomic_commit'\"'\"']; values=[r for r in rows if r[2]=='\"'\"'atomic_value'\"'\"']; assert sum('\"'\"'advanced=1'\"'\"' in tags(r) for r in commits)==2, commits; assert not any(r[2] in {'\"'\"'fallback'\"'\"','\"'\"'atomic_pending_conflict'\"'\"'} or (r[2]=='\"'\"'atomic_commit'\"'\"' and '\"'\"'mismatch=1'\"'\"' in tags(r)) for r in rows); assert any(r[2]=='\"'\"'atomic_value'\"'\"' and '\"'\"'role=read'\"'\"' in tags(r) and '\"'\"'value=0x0'\"'\"' in tags(r) for r in values), values'\n# RUN: at line 11\npython3 -c \"rows=[l.split() for l in open(r'/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.writer-first.trace')]; tags=lambda r:set(r[4:]); commits=[r for r in rows if r[2]=='atomic_commit']; values=[r for r in rows if r[2]=='atomic_value']; assert sum('advanced=1' in tags(r) for r in commits)==2, commits; assert not any(r[2] in {'fallback','atomic_pending_conflict'} or (r[2]=='atomic_commit' and 'mismatch=1' in tags(r)) for r in rows); assert any(r[2]=='atomic_value' and 'role=read' in tags(r) and 'value=0x1' in tags(r) for r in values), values\"\n# executed command: python3 -c 'rows=[l.split() for l in open(r'\"'\"'/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_commit_replay.c.tmp.writer-first.trace'\"'\"')]; tags=lambda r:set(r[4:]); commits=[r for r in rows if r[2]=='\"'\"'atomic_commit'\"'\"']; values=[r for r in rows if r[2]=='\"'\"'atomic_value'\"'\"']; assert sum('\"'\"'advanced=1'\"'\"' in tags(r) for r in commits)==2, commits; assert not any(r[2] in {'\"'\"'fallback'\"'\"','\"'\"'atomic_pending_conflict'\"'\"'} or (r[2]=='\"'\"'atomic_commit'\"'\"' and '\"'\"'mismatch=1'\"'\"' in tags(r)) for r in rows); assert any(r[2]=='\"'\"'atomic_value'\"'\"' and '\"'\"'role=read'\"'\"' in tags(r) and '\"'\"'value=0x1'\"'\"' in tags(r) for r in values), values'\n\n--\n"
    },
    {
      "code": "PASS",
      "elapsed": 0.07351207733154297,
      "name": "compiler :: schedule_atomic_trace.c",
      "output": "Exit Code: 0\n\nCommand Output (stdout):\n--\n# RUN: at line 1\nenv SYMCC_DPOR_MEMORY=1 /home/ubuntu/code/symcc/build/test/../symcc -O0 /home/ubuntu/code/symcc/test/schedule_atomic_trace.c -o /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_trace.c.tmp -pthread\n# executed command: env SYMCC_DPOR_MEMORY=1 /home/ubuntu/code/symcc/build/test/../symcc -O0 /home/ubuntu/code/symcc/test/schedule_atomic_trace.c -o /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_trace.c.tmp -pthread\n# RUN: at line 2\nrm -f /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_trace.c.tmp.trace\n# executed command: rm -f /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_trace.c.tmp.trace\n# RUN: at line 3\nenv LD_PRELOAD=/home/ubuntu/code/symcc/build/libsymcc_schedule_rt.so SYMCC_DPOR=1 SYMCC_SCHEDULE_TRACE=/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_trace.c.tmp.trace SYMCC_SCHEDULE_MEMORY=1 SYMCC_SCHEDULE_ATOMIC_COMMIT=1 /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_trace.c.tmp\n# executed command: env LD_PRELOAD=/home/ubuntu/code/symcc/build/libsymcc_schedule_rt.so SYMCC_DPOR=1 SYMCC_SCHEDULE_TRACE=/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_trace.c.tmp.trace SYMCC_SCHEDULE_MEMORY=1 SYMCC_SCHEDULE_ATOMIC_COMMIT=1 /home/ubuntu/code/symcc/build/test/Output/schedule_atomic_trace.c.tmp\n# .---command stderr------------\n# | This is SymCC running with the QSYM backend\n# `-----------------------------\n# RUN: at line 4\npython3 -c \"rows=[l.split() for l in open(r'/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_trace.c.tmp.trace')]; tags=lambda r:set(r[4:]); source=[r for r in rows if any(t.startswith('kind=') for t in tags(r))]; values=[r for r in rows if r[2]=='atomic_value']; commits=[r for r in rows if r[2]=='atomic_commit']; assert len(source)==6, source; assert len(values)==8, values; assert len(commits)==6, commits; assert all('mode=1' in tags(r) and 'mismatch=0' in tags(r) for r in commits); assert sum(r[2]=='atomic_result' for r in rows)==1; assert any(r[2]=='read' and 'kind=load' in tags(r) and 'mo=acquire' in tags(r) for r in rows); assert any(r[2]=='write' and 'kind=store' in tags(r) and 'mo=release' in tags(r) for r in rows); assert any(r[2]=='rmw' and 'kind=rmw' in tags(r) and 'mo=acq_rel' in tags(r) for r in rows); assert any(r[2]=='rmw' and 'kind=cmpxchg' in tags(r) and 'mo=seq_cst' in tags(r) for r in rows); assert any(r[2]=='atomic_result' and 'success=1' in tags(r) for r in rows); assert any('role=write' in tags(r) and 'value=0x1' in tags(r) for r in values); assert any('role=desired' in tags(r) and 'value=0x9' in tags(r) for r in values); assert any('role=read' in tags(r) and 'value=0x9' in tags(r) for r in values); assert any(r[2]=='fence' and 'kind=fence' in tags(r) and 'mo=seq_cst' in tags(r) for r in rows); assert not ({'lock','trylock','acquire','unlock','rdlock','wrlock','rwunlock','wait','signal','broadcast'} & {r[2] for r in rows})\"\n# executed command: python3 -c 'rows=[l.split() for l in open(r'\"'\"'/home/ubuntu/code/symcc/build/test/Output/schedule_atomic_trace.c.tmp.trace'\"'\"')]; tags=lambda r:set(r[4:]); source=[r for r in rows if any(t.startswith('\"'\"'kind='\"'\"') for t in tags(r))]; values=[r for r in rows if r[2]=='\"'\"'atomic_value'\"'\"']; commits=[r for r in rows if r[2]=='\"'\"'atomic_commit'\"'\"']; assert len(source)==6, source; assert len(values)==8, values; assert len(commits)==6, commits; assert all('\"'\"'mode=1'\"'\"' in tags(r) and '\"'\"'mismatch=0'\"'\"' in tags(r) for r in commits); assert sum(r[2]=='\"'\"'atomic_result'\"'\"' for r in rows)==1; assert any(r[2]=='\"'\"'read'\"'\"' and '\"'\"'kind=load'\"'\"' in tags(r) and '\"'\"'mo=acquire'\"'\"' in tags(r) for r in rows); assert any(r[2]=='\"'\"'write'\"'\"' and '\"'\"'kind=store'\"'\"' in tags(r) and '\"'\"'mo=release'\"'\"' in tags(r) for r in rows); assert any(r[2]=='\"'\"'rmw'\"'\"' and '\"'\"'kind=rmw'\"'\"' in tags(r) and '\"'\"'mo=acq_rel'\"'\"' in tags(r) for r in rows); assert any(r[2]=='\"'\"'rmw'\"'\"' and '\"'\"'kind=cmpxchg'\"'\"' in tags(r) and '\"'\"'mo=seq_cst'\"'\"' in tags(r) for r in rows); assert any(r[2]=='\"'\"'atomic_result'\"'\"' and '\"'\"'success=1'\"'\"' in tags(r) for r in rows); assert any('\"'\"'role=write'\"'\"' in tags(r) and '\"'\"'value=0x1'\"'\"' in tags(r) for r in values); assert any('\"'\"'role=desired'\"'\"' in tags(r) and '\"'\"'value=0x9'\"'\"' in tags(r) for r in values); assert any('\"'\"'role=read'\"'\"' in tags(r) and '\"'\"'value=0x9'\"'\"' in tags(r) for r in values); assert any(r[2]=='\"'\"'fence'\"'\"' and '\"'\"'kind=fence'\"'\"' in tags(r) and '\"'\"'mo=seq_cst'\"'\"' in tags(r) for r in rows); assert not ({'\"'\"'lock'\"'\"','\"'\"'trylock'\"'\"','\"'\"'acquire'\"'\"','\"'\"'unlock'\"'\"','\"'\"'rdlock'\"'\"','\"'\"'wrlock'\"'\"','\"'\"'rwunlock'\"'\"','\"'\"'wait'\"'\"','\"'\"'signal'\"'\"','\"'\"'broadcast'\"'\"'} & {r[2] for r in rows})'\n\n--\n"
    },
    {
      "code": "PASS",
      "elapsed": 0.03262972831726074,
      "name": "compiler :: native_condpor_campaign_target.c",
      "output": "Exit Code: 0\n\nCommand Output (stdout):\n--\n# RUN: at line 1\ncc -std=c11 -O0 -pthread /home/ubuntu/code/symcc/test/native_condpor_campaign_target.c -ldl -o /home/ubuntu/code/symcc/build/test/Output/native_condpor_campaign_target.c.tmp\n# executed command: cc -std=c11 -O0 -pthread /home/ubuntu/code/symcc/test/native_condpor_campaign_target.c -ldl -o /home/ubuntu/code/symcc/build/test/Output/native_condpor_campaign_target.c.tmp\n# RUN: at line 2\nrm -f /home/ubuntu/code/symcc/build/test/Output/native_condpor_campaign_target.c.tmp.trace\n# executed command: rm -f /home/ubuntu/code/symcc/build/test/Output/native_condpor_campaign_target.c.tmp.trace\n# RUN: at line 3\nenv LD_PRELOAD=/home/ubuntu/code/symcc/build/libsymcc_schedule_rt.so SYMCC_DPOR=1 SYMCC_SCHEDULE_MEMORY=1 SYMCC_SCHEDULE_TRACE=/home/ubuntu/code/symcc/build/test/Output/native_condpor_campaign_target.c.tmp.trace /home/ubuntu/code/symcc/build/test/Output/native_condpor_campaign_target.c.tmp\n# executed command: env LD_PRELOAD=/home/ubuntu/code/symcc/build/libsymcc_schedule_rt.so SYMCC_DPOR=1 SYMCC_SCHEDULE_MEMORY=1 SYMCC_SCHEDULE_TRACE=/home/ubuntu/code/symcc/build/test/Output/native_condpor_campaign_target.c.tmp.trace /home/ubuntu/code/symcc/build/test/Output/native_condpor_campaign_target.c.tmp\n# RUN: at line 4\npython3 -c \"rows=[line.split() for line in open(r'/home/ubuntu/code/symcc/build/test/Output/native_condpor_campaign_target.c.tmp.trace')]; assert sum(row[2]=='write' for row in rows)==1; assert sum(row[2]=='read' for row in rows)==1; assert sum(row[2]=='action' for row in rows)==1; assert not any(row[2]=='fallback' for row in rows)\"\n# executed command: python3 -c 'rows=[line.split() for line in open(r'\"'\"'/home/ubuntu/code/symcc/build/test/Output/native_condpor_campaign_target.c.tmp.trace'\"'\"')]; assert sum(row[2]=='\"'\"'write'\"'\"' for row in rows)==1; assert sum(row[2]=='\"'\"'read'\"'\"' for row in rows)==1; assert sum(row[2]=='\"'\"'action'\"'\"' for row in rows)==1; assert not any(row[2]=='\"'\"'fallback'\"'\"' for row in rows)'\n\n--\n"
    }
  ]
}
