# SplitBit test manifest # Written by Anachronaut # # One test per line, fields separated by '|'. Blank lines and lines starting # with '#' are ignored. # # name | source | assemble-from | mode | stdin | limit # # source and assemble-from are both relative to Programs/. assemble-from exists # because #Include paths resolve against the current directory rather than # against the including file, so each program has one directory it builds in. # # Modes: # run Assemble, execute, compare all output against Tests/expected/.out # assemble Assemble only. For library files that have no entry point to run # xfail Assembly is expected to fail. Records a known breakage so that # fixing one is noticed, and so an accidental new one is too # # limit is a cycle count, for programs that never halt on their own. It is passed # to the emulator as --cycles, which bounds the run by cycles rather than by wall # clock time and so keeps the recorded output identical from one run to the next. # Every program is run with --fast, since the emulated cycle rate has no bearing # on what a program prints. # ---- Programs that halt on their own ---- hello | hello.asm | . | run | - | - printHello | printHello.asm | . | run | - | - 8bitFibonacci | Fibonacci/8bitFibonacci.asm | . | run | - | - 16bitFibonacci | Fibonacci/16bitFibonacci.asm | . | run | - | - 32bitFibonacci | Fibonacci/32bitFibonacci.asm | . | run | - | - 8bitSieve | primeSieve/8bitSieve.asm | primeSieve | run | - | - 16bitSegmentedSieve | primeSieve/16bitSegmentedSieve.asm | . | run | - | - mathTest | testPrograms/mathTest.asm | testPrograms | run | - | - printTest | testPrograms/printTest.asm | testPrograms | run | - | - int16print | Libraries/int16print.asm | Libraries | run | - | - # ---- The multiple Data Pointer behaviour, which nothing else exercises ---- dataPointerTest | testPrograms/dataPointerTest.asm | testPrograms | run | - | - twoPointerCopy | testPrograms/twoPointerCopy.asm | testPrograms | run | - | - # ---- Programs driven by console input ---- inputTest | inputTest.asm | . | run | inputTest.in | - inputTestOld | testPrograms/inputTest.asm | testPrograms | run | inputTest.in | - replCalculator | replCalculator.asm | . | run | replCalculator.in | - # ---- Programs that run forever by design, bounded by a cycle count ---- # 3,000,000 cycles is about fourteen generations of the glider, which puts # evolveBoard and its pointer juggling through its paces many times over. 16x16Life | gameOfLife/16x16Life.asm | . | run | - | 3000000 # ---- Libraries: no entry point, so only check that they assemble ---- lib-int8 | Libraries/int8.asm | . | assemble | - | - lib-int16 | Libraries/int16.asm | . | assemble | - | - lib-int32 | Libraries/int32.asm | . | assemble | - | - lib-math | Libraries/math.asm | . | assemble | - | - # ---- Known breakages, recorded rather than ignored ---- # print.asm branches to 'start', which only the including program defines. lib-print | Libraries/print.asm | . | xfail | - | - # These three call print.asm routines but have no #Include line at all. printDecimalTest | testPrograms/printDecimalTest.asm | testPrograms | xfail | - | - printDigitTest | testPrograms/printDigitTest.asm | testPrograms | xfail | - | - printHexTest | testPrograms/printHexTest.asm | testPrograms | xfail | - | - # shiftTest includes "print.asm", which is not beside it. shiftTest | testPrograms/shiftTest.asm | testPrograms | xfail | - | -