^6NE_rb^;kVKX5=?f+_Er|=F29`{tV$fW?gOHP
zo%%(t`5ZmApiC8p^=9Y#K#VJ^1idBDW!wkHzAqld`+)787aa#Vm5EO)e
zMrSAnYbF}T#R!%4UeVzXC1#6ZZ8W*RUcgo^>fz*HdLblvl5$klwmFl}EBM&jow4dTjj
zfV|t#BYH(bkax1vN(9Nn#-2mY*4w`~F%~o(!Na{ORIQmR%5oOYfqW?y+}ludi8)#lY8i2&KW|zvMjO}=ggNESBjD>Bor3JKgap~8jwHe
z_o%=Bl=>qF1jMgkzCTF$CHemu+V|Hg{2>eh@hgn&4~lt7{wLU5m<*&7Q_#2czhXVdH&R=W8_A(UzS(`sX1OFN2x0mJLjk5k5l)r`w{xi~F
z+g12CNPi9;{AZlM)@bSPaQ+fX_|Hgx?I9ef|J_4>gckk_<@Zy?e?D*g%X#<*$-SWb
z5o-9m3jZ$m=hH{OP9y(8s;GZCoBW@GfA((wI-K+e`QiNasM3E*{@F?T%lrKYX}t90
zOMLBbzVP3r{>g#*hm/dev/null
diff --git a/document/directory_naming.html b/document/directory_naming.html
index be43a3d..d409362 100644
--- a/document/directory_naming.html
+++ b/document/directory_naming.html
@@ -102,9 +102,7 @@
tester/ Workspace for the tester. Has the test bench, tests, and test scripts.
- document/ Test-specific documentation.
- - test0/ Test case 0 environment and associated scripts.
- - test1/ Test case 1 environment and associated scripts.
- - test2/ Test case 2 environment and associated scripts.
+ - javac/ The tests of the test bench sources.
- tool/ Tools needed for testing and managing the test environment.
tool/ Project administration specific tools.
diff --git a/document/work_flow.txt b/document/work_flow.txt
index 5f699a2..6c3ea4c 100644
--- a/document/work_flow.txt
+++ b/document/work_flow.txt
@@ -29,7 +29,7 @@
4.1. The release candidate is located in the `$REPO_HOME/release` directory and
has passed testing.
-4.2. Check that the program `$REPO_HOME/tool_shared/bespoke/release` outputs the
+4.2. Check that the program `$REPO_HOME/tool_shared/bespoke/version` outputs the
correct information. If necessary, modify it.
4.3. A new branch is created in the project for the release, named
`release_v.0`, where `v.0` is the version number from the `version`
diff --git a/release/Mosaic.jar b/release/Mosaic.jar
index dd5ec49c9ac17e3daee50feef45a1303a429e471..f1f8c7a9b8334ccdd657dc94f527074a8994b4b5 100644
GIT binary patch
delta 191
zcmeB9oaw+D;LXe;!ob17!QhdXGLhGc8AN%VW}Xt2GFgIA9>kqb^ws3mC!Do7XZn
zuz>_N8*p?off;+a7IT6bNg^jWco~^Q7~p13_R+Bb>u%R62b;>Ms}JTI>pFw!N?k87
meM~n9OiSy9f$0*xNHBdt&r5`rjR6R_fbcdG1A~Svhz9`XtTNdE
delta 4172
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
Y6lDG1uaR82n4> cd Mosaic
+> source env_tester
+> emacs &
+
+...
+
+2024-11-04T11:23:08Z[Mosaic_tester]
+Thomas-developer@Blossac§/var/user_data/Thomas-developer/Mosaic§
+> clean_build_directories
++ cd /var/user_data/Thomas-developer/Mosaic/tester
++ rm -r scratchpad/Test0.class scratchpad/Test_IO.class 'scratchpad/Test_MockClass$TestSuite.class' scratchpad/Test_MockClass.class scratchpad/Test_TestBench.class scratchpad/Test_Util.class
++ rm jvm/Test_Mosaic.jar
++ rm shell/Test0 shell/Test_IO shell/Test_MockClass shell/Test_TestBench shell/Test_Util
++ set +x
+clean_build_directories done.
+
+2024-11-04T11:23:23Z[Mosaic_tester]
+Thomas-developer@Blossac§/var/user_data/Thomas-developer/Mosaic§
+> make
+Compiling files...
++ cd /var/user_data/Thomas-developer/Mosaic/tester
++ javac -g -d scratchpad javac/Test0.java javac/Test_IO.java javac/Test_MockClass.java javac/Test_TestBench.java javac/Test_Util.java
++ jar cf jvm/Test_Mosaic.jar -C scratchpad .
++ set +x
+Creating shell wrappers...
+tester/tool/make done.
+
+2024-11-04T11:23:27Z[Mosaic_tester]
+Thomas-developer@Blossac§/var/user_data/Thomas-developer/Mosaic§
+> run_tests
+Running Test0...Test0 passed
+Running Test_Util...Test_Util passed
+Running Test_IO...Test_IO passed
+Running Test_TestBench...Expected output: Structural problem message for dummy_invalid_return_method.
+Structural problem: dummy_invalid_return_method does not return Boolean.
+Test_TestBench Total tests run: 3
+Test_TestBench Total tests passed: 3
+Test_TestBench Total tests failed: 0
+Running Test_MockClass...Test failed: 'test_failure_0' reported failure.
+Structural problem: test_failure_1 does not return Boolean.
+Error: test_failure_1 has an invalid structure.
+Test failed: 'test_failure_2' threw an exception: java.lang.reflect.InvocationTargetException
+Test failed: 'test_failure_3' produced extraneous stdout.
+Test failed: 'test_failure_4' produced extraneous stderr.
+Total tests run: 9
+Total tests passed: 4
+Total tests failed: 5
+
+2024-11-04T11:23:33Z[Mosaic_tester]
+Thomas-developer@Blossac§/var/user_data/Thomas-developer/Mosaic§
+> clean_build_directories
++ cd /var/user_data/Thomas-developer/Mosaic/tester
++ rm -r scratchpad/Test0.class scratchpad/Test_IO.class 'scratchpad/Test_MockClass$TestSuite.class' scratchpad/Test_MockClass.class scratchpad/Test_TestBench.class scratchpad/Test_Util.class
++ rm jvm/Test_Mosaic.jar
++ rm shell/Test0 shell/Test_IO shell/test_log.txt shell/Test_MockClass shell/Test_TestBench shell/Test_Util
++ set +x
+clean_build_directories done.
diff --git a/tester/jvm/Test_Mosaic.jar b/tester/jvm/Test_Mosaic.jar
index 73b55655feba138c3172d6497c1feedc45646574..9d9305e416452d706e212527f0143e3dced2adfd 100644
GIT binary patch
delta 146
zcmexv{oR^3z?+#xgn@&DgJE)B%0yl(W)S6d8bocDV7$NtX1r$J%mQXCGnDu|
zAX2#kY;0hWGBHQ6)Z|^#79fGiU!}{zbiRxkm|h_R5q~V>3Fhm|+JosrD7{(M1ppYo
BGMfMZ
delta 146
zcmexv{oR^3z?+#xgn@&DgP}w%aU!o3Gl=p!4Wc$nFkWB+GhQ=qW&tx6a@4Vc8A^N}
z5UE@NHa4(GnV2J3YVs~=3y{F%uhQjUI$y>NOs|lEh(DI`1oQP}?ZI>*l-?}s0svJt
BEBgQd
diff --git a/tester/shell/test_log.txt b/tester/shell/test_log.txt
new file mode 100644
index 0000000..0271459
--- /dev/null
+++ b/tester/shell/test_log.txt
@@ -0,0 +1,14 @@
+
+2024-11-04T13:53:57.865246Z -----------------------------------------------------------
+Test: test_failure_3
+Stream: stdout
+Output:
+Intentional extraneous chars to stdout for testing
+
+
+2024-11-04T13:53:57.874296Z -----------------------------------------------------------
+Test: test_failure_4
+Stream: stderr
+Output:
+Intentional extraneous chars to stderr for testing.
+
diff --git a/tool_shared/bespoke/version b/tool_shared/bespoke/version
index 3a9dd05..7faa3a1 100755
--- a/tool_shared/bespoke/version
+++ b/tool_shared/bespoke/version
@@ -2,5 +2,5 @@
script_afp=$(realpath "${BASH_SOURCE[0]}")
# 2024-10-24T14:56:09Z project skeleton and test bench files extracted from Ariadne
-echo v0.1
+echo v1.0
--
2.20.1