#!/bin/sh

source $testsuitedir/lib_test.sh

PORT_TESTS=$(( $PORT_TESTS + 3))

attend_port_libre $PORT_TESTS

cat > PROGRAMME << EOP
	:open \$bla TCP < "localhost" "$PORT_TESTS"
	:read \$("bla") ~s ALL
EOP

cat > MEMOIRE_INITIALE << EOM
# Memory:
# Aliases:
# Free addresses:
# Free blocks:
# End of memory
EOM

cat > MEMOIRE_REF << EOM
# Memory:
# Aliases:
# Free addresses:
# Free blocks:
# End of memory
EOM

cat > STDOUT_REF << EOS
EOS

cat > STDERR_REF << EOS
+------------------------------------------------------------------------------------------+
| File PROGRAMME.setlggasm, line 2 > Runtime error (ILL): Invalid operation on stream \$bla |
+------------------------------------------------------------------------------------------+
EOS

cat > CODE_RETOUR_REF << EOC
129
EOC

test_basique

PORT_TESTS=$(( $PORT_TESTS + 1))

attend_port_libre $PORT_TESTS

cat > PROGRAMME << EOP
	:new IOR/f
	\$("bla") -> f
	:open \$@f TCP < "localhost" "$PORT_TESTS"
	:seek \$@f END -2
EOP

cat > MEMOIRE_INITIALE << EOM
# Memory:
# Aliases:
# Free addresses:
# Free blocks:
# End of memory
EOM

cat > MEMOIRE_REF << EOM
# Memory:
# Aliases:
# Free addresses:
# Free blocks:
# End of memory
EOM

cat > STDOUT_REF << EOS
EOS

cat > STDERR_REF << EOS
+----------------------------------------------------------------------------------------------+
| File PROGRAMME.setlggasm, line 4 > Runtime error (ILL): Invalid operation on stream \$("bla") |
+----------------------------------------------------------------------------------------------+
EOS

cat > CODE_RETOUR_REF << EOC
129
EOC

test_basique

PORT_TESTS=$(( $PORT_TESTS + 1))

attend_port_libre $PORT_TESTS

cat > PROGRAMME << EOP
	:open \$srv TCP < "localhost" "$PORT_TESTS"
	:open \$bla TCP > "localhost" "$PORT_TESTS"
	:wait \$bla > \$com
EOP

cat > MEMOIRE_INITIALE << EOM
# Memory:
# Aliases:
# Free addresses:
# Free blocks:
# End of memory
EOM

cat > MEMOIRE_REF << EOM
# Memory:
# Aliases:
# Free addresses:
# Free blocks:
# End of memory
EOM

cat > STDOUT_REF << EOS
EOS

cat > STDERR_REF << EOS
+------------------------------------------------------------------------------------------+
| File PROGRAMME.setlggasm, line 3 > Runtime error (ILL): Invalid operation on stream \$bla |
+------------------------------------------------------------------------------------------+
EOS

cat > CODE_RETOUR_REF << EOC
129
EOC

test_basique

PORT_TESTS=$(( $PORT_TESTS + 1))

attend_port_libre $PORT_TESTS

cat > PROGRAMME << EOP
	:open \$srv TCP < "localhost" "$PORT_TESTS"
	:open \$bla TCP > "localhost" "$PORT_TESTS"
	:seek \$bla END -2
EOP

cat > MEMOIRE_INITIALE << EOM
# Memory:
# Aliases:
# Free addresses:
# Free blocks:
# End of memory
EOM

cat > MEMOIRE_REF << EOM
# Memory:
# Aliases:
# Free addresses:
# Free blocks:
# End of memory
EOM

cat > STDOUT_REF << EOS
EOS

cat > STDERR_REF << EOS
+------------------------------------------------------------------------------------------+
| File PROGRAMME.setlggasm, line 3 > Runtime error (ILL): Invalid operation on stream \$bla |
+------------------------------------------------------------------------------------------+
EOS

cat > CODE_RETOUR_REF << EOC
129
EOC

test_basique
