X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=tests%2F1.8%2Fstress%2Fmetadata%2Fpass%2Flong-identifier%2Ftest.py;h=b2a7c9a00d444a7579389b94ea3a7227c2f7492f;hb=9926ec7ff6d51a3c60d5f3a874340f82b7a7e8a8;hp=34c5f4ef0e4a6835f645636b73ca9467af706d06;hpb=6fe5adb276875a59e8767f43ee7506adf7da8be1;p=ctf-testsuite.git diff --git a/tests/1.8/stress/metadata/pass/long-identifier/test.py b/tests/1.8/stress/metadata/pass/long-identifier/test.py index 34c5f4e..b2a7c9a 100755 --- a/tests/1.8/stress/metadata/pass/long-identifier/test.py +++ b/tests/1.8/stress/metadata/pass/long-identifier/test.py @@ -1,90 +1,47 @@ #!/usr/bin/env python3 +from ctftestsuite.stress import MetadataTest -# Expects either "prepare" or "clean" argument -import sys -import os -import struct +class Test(MetadataTest): + what = 'long identifier of {size} chars' -def arg_err(): - print('Please specify "prepare " or "clean " as first argument.') - sys.exit(-1) + def write_metadata(self, f): + p1 = \ +'''/* CTF 1.8 */ -if (len(sys.argv) <= 1): - arg_err() -mode = sys.argv[1] -if (len(sys.argv) <= 2): - arg_err() -array_len = int(sys.argv[2]) +typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t; +typealias integer { size = 32; align = 8; signed = false; base = hex; } := uint32_t; -tracedir_name = './trace-' + str(array_len) + '/' -output_metadata = tracedir_name + 'metadata' -output_stream = tracedir_name + 'stream' +trace { + major = 0; + minor = 0; + uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564"; + byte_order = le; + packet.header := struct { + uint32_t magic; + uint8_t uuid[16]; + }; +}; +event { + name = myevent; + fields := struct { + uint8_t ''' -def write_binary(f, arr): - f.write(bytes(arr)) + p2 = \ +'''; + }; +}; +''' -def generate_metadata(array_len): - # Generate metadata - metadata_str1 = \ - ('/* CTF 1.8 */\n' - '\n' - 'typealias integer {{ size = 8; align = 8; signed = false; base = 10; }} := uint8_t;\n' - 'typealias integer {{ size = 32; align = 8; signed = false; base = hex; }} := uint32_t;\n' - '\n' - 'trace {{\n' - ' major = 0;\n' - ' minor = 0;\n' - ' uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";\n' - ' byte_order = le;\n' - ' packet.header := struct {{\n' - ' uint32_t magic;\n' - ' uint8_t uuid[16];\n' - ' }};\n' - '}};\n' - '\n' - 'event {{\n' - ' name = myevent;\n' - ' fields := struct {{\n' - ' uint8_t ').format() + f.write(p1) - metadata_char = \ - ('A') + for i in range(self.size): + f.write('A') - metadata_str2 = \ - (';\n' - ' }};\n' - '}};\n' - '\n').format() + f.write(p2) - metadata_f = open(output_metadata, 'w') - metadata_f.write(metadata_str1) - for i in range(array_len): - metadata_f.write(metadata_char.format()) - metadata_f.write(metadata_str2) - metadata_f.close() -def test_prepare(): - print('Preparing test for long identifier ' + str(array_len) + ' chars') - os.mkdir(tracedir_name) - generate_metadata(array_len) - -def test_clean(): - print('Cleaning up test for long identifier ' + str(array_len) + ' chars') - try: - os.remove(output_metadata) - except: - pass - try: - os.rmdir(tracedir_name) - except: - pass - -if (mode == "prepare"): - test_clean() - test_prepare() -elif (mode == "clean"): - test_clean() -else: - arg_err() +if __name__ == '__main__': + test = Test() + test.main()