|
|
1.1 root 1: /*
2: * Hatari - gemdos.c
3: *
4: * Copyright (C) 2012 by Eero Tamminen
5: *
6: * This file is distributed under the GNU Public License, version 2 or
7: * at your option any later version. Read the file gpl.txt for details.
8: *
9: * Atari code for testing some basic Hatari GEMDOS device and file handle
10: * operations in co-operations with tos_tester.py Hatari test driver.
11: *
12: * Full test should eventually be something like:
13: * - clear screen
14: * - open INPUT_FILE for reading
15: * - write INPUT_FILE content to OUTPUT_FILE
16: * - close OUTPUT_FILE and INPUT_FILE
17: * - make OUTPUT_FILE read-only
18: * - TODO: execute another instance of tester with option that
19: * tell the second instance to do rest of tests
20: * - TODO: dup stdin & stdout handles
21: * - output OUTPUT_FILE to CON:
22: * - open OUTPUT_FILE for reading
23: * - TODO: force that to stdin
24: * - open "CON:" (console) for writing
25: * - TODO: force stdout there
26: * - TODO: read stdin and write it to stdout
27: * - for now, directly copy OUTPUT_FILE -> "CON:"
28: * - TODO: restore stdin & stdout
29: * - close OUTPUT_FILE & "CON:"
30: * - output same file similarly to PRN: (printer)
31: * - NOTE: this fails for TOS v1.02 - v2.06 when done in a program
32: * auto-started from the AUTO-folder or from DESKTOP.INF
33: * - output same file similarly to AUX: (serial)
34: * - truncate OUTPUT_FILE -> expected to fail
35: * - make OUTPUT_FILE writable
36: * - truncate OUTPUT_FILE
37: *
38: * As last step, output SUCCESS/FAILURE to MIDI to indicate whether
39: * everything (except for the expected failure) succeeded.
40: *
41: * TOS tester will additionally verify that the pipeline worked fine
42: * by checking that the device output file contents match what's
43: * expected i.e. this whole pipeline works as expected:
44: * INPUT_FILE --(OUTPUT_FILE)--> device
45: *
46: * And that OUTPUT_FILE is again empty after test.
47: */
48: #include "common.h"
49:
50: int main()
51: {
52: clear_screen();
53:
54: copy_file(INPUT_FILE, OUTPUT_FILE);
55: write2console(OUTPUT_FILE);
56: write2printer(OUTPUT_FILE);
57: write2serial(OUTPUT_FILE);
58: truncate_file(OUTPUT_FILE);
59:
60: write_midi();
61: wait_enter();
62: return 0;
63: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.