view tests/heredoctest.py @ 50708:999b710d48d2

stream-clone: split the stream part out of test-persistent-nodemap.t We want to test multiple variants, so let's make it an independent test. Small adaptations and simplifications are needed in the test output as the tested repository is now shorter.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 23 May 2023 10:18:01 +0200
parents 6000f5b25c9b
children
line wrap: on
line source

import sys


def flush():
    sys.stdout.flush()
    sys.stderr.flush()


globalvars = {}
lines = sys.stdin.readlines()
while lines:
    l = lines.pop(0)
    if l.startswith('SALT'):
        print(l[:-1])
    elif l.startswith('>>> '):
        snippet = l[4:]
        while lines and lines[0].startswith('... '):
            l = lines.pop(0)
            snippet += l[4:]
        c = compile(snippet, '<heredoc>', 'single')
        try:
            flush()
            exec(c, globalvars)
            flush()
        except Exception as inst:
            flush()
            print(repr(inst))