1
<exercise name = "Test all IO">
2
<desc>Write a program which does the following:
4
<li>Gets the value of a variable "foo" and prints it to stdout.</li>
5
<li>Gets the contents of a file "input.txt" and prints it to stdout.
7
<li>Gets the contents of stdin and writes it to a file "output.txt".
12
<!-- Here you can place any Python functions to use for normalisation.
13
Note: "id" will be in our standard test functions lib.
22
# Sample solution, used to generate test output
24
input2 = file('input.txt').read()
31
f = file('output.txt','w')
36
<!-- Alternatively, <solution src="all_input_test_soln.py" /> -->
37
<case name="All Tests">
38
<!-- Specify input -->
39
<stdin>This is Standard Input</stdin>
40
<file name='input.txt'>
43
<var name="foo" value="'Variable Input'" />
45
<!-- Functions test varying levels of compliance with the spec -->
46
<!-- 'default="match"' means exactly match any unlisted files.
47
(The default behaviour)
48
'default="ignore"' means ignore any unlisted files.
50
<!-- Match stdout case insensitive, output.txt match exactly,
51
and ignore other files. -->
52
<function desc="Match case insensitive and ignore other files"
54
<stdout>str.lower</stdout>
55
<!-- 'type="norm"' treats the function as a normalisation
56
function (the default behaviour).
57
'type="check"' treats it as a 2-argument check. -->
58
<file name="output.txt" type="norm">str.lower</file>
60
<function desc="Match expected files" default="ignore">
62
<file name="output.txt"/>
64
<!-- Match all files exactly, even those not listed. -->
65
<function desc="Match output, no unexpected files allowed" />