diff --git a/bin/build_image.sh b/bin/build_image.sh index f89ffe3d..c2a2247c 100755 --- a/bin/build_image.sh +++ b/bin/build_image.sh @@ -64,13 +64,6 @@ build_image() docker --log-level=ERROR compose build server fi - echo - echo "Building with --build-args" - echo " COMMIT_SHA=${COMMIT_SHA}" - echo "To change this run:" - echo "$ COMMIT_SHA=... make image_${type}" - echo - if [ "${type}" == 'client' ]; then # In CI workflow, we need to build the client image docker --log-level=ERROR compose build client @@ -89,8 +82,10 @@ build_image() # Tag image-name for local development where differs name comes from echo-versioner-env-vars if [ "${type}" == 'server' ]; then docker tag "${image_name}" "cyberdojo/differ:${CYBER_DOJO_DIFFER_TAG}" + echo echo " echo CYBER_DOJO_DIFFER_SHA=${CYBER_DOJO_DIFFER_SHA}" echo " echo CYBER_DOJO_DIFFER_TAG=${CYBER_DOJO_DIFFER_TAG}"] + echo echo "${image_name}" fi } diff --git a/bin/echo_env_vars.sh b/bin/echo_env_vars.sh index 087ca5a9..48bc3c02 100644 --- a/bin/echo_env_vars.sh +++ b/bin/echo_env_vars.sh @@ -34,6 +34,7 @@ echo_env_vars() echo CYBER_DOJO_DIFFER_IMAGE="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/differ" # Overrides for local development - #echo CYBER_DOJO_SAVER_SHA=d80c6e4f9d17b41da878fa69315de7298e059350 - #echo CYBER_DOJO_SAVER_TAG=d80c6e4 + # echo CYBER_DOJO_SAVER_SHA=d80c6e4f9d17b41da878fa69315de7298e059350 + # echo CYBER_DOJO_SAVER_TAG=d80c6e4 + # } diff --git a/docs/todo.txt b/docs/todo.txt new file mode 100644 index 00000000..1cfb6d04 --- /dev/null +++ b/docs/todo.txt @@ -0,0 +1,4 @@ + +- When saver.kata_event() which is called in server tests +it can throw an exception. This exception is swallowed by differ +and returns nil. Instead, the exception should be propagated. diff --git a/test/server/differ_test.rb b/test/server/differ_test.rb index 5e29bd9f..dc6c8412 100644 --- a/test/server/differ_test.rb +++ b/test/server/differ_test.rb @@ -4,15 +4,8 @@ class DifferTest < DifferTestBase - #def self.versions_test(id58_suffix, *lines, &block) - # versions = 0..2 - # versions.each do |version| - # version_test(version, id58_suffix, *lines, &block) - # end - #end - - def self.versions_0_1_test(id58_suffix, *lines, &block) - versions = 0..1 + def self.versions_test(id58_suffix, *lines, &block) + versions = 0..2 versions.each do |version| version_test(version, id58_suffix, *lines, &block) end @@ -30,8 +23,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # empty file # - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9sA2C', %w( - versions_0_1_test 'C9sA2C', %w( + versions_test 'C9sA2C', %w( | empty file is created ) do # Saver v2 uses git and its implementation currently relies on there @@ -47,8 +39,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9sA5C', %w( - versions_0_1_test 'C9sA5C', %w( + versions_test 'C9sA5C', %w( | empty file is deleted ) do @was_files = { 'empty.rb' => '' } @@ -61,8 +52,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9s3ED', %w( - versions_0_1_test 'C9s3ED', %w( + versions_test 'C9s3ED', %w( | empty file is unchanged ) do @was_files = { 'empty.py' => '' } @@ -75,8 +65,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9sAA6', %w( - versions_0_1_test 'C9sAA6', %w( + versions_test 'C9sAA6', %w( | empty file is renamed 100% identical ) do @was_files = { 'plain' => '' } @@ -89,8 +78,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9sA2D', %w( - versions_0_1_test 'C9sA2D', %w( + versions_test 'C9sA2D', %w( | empty file is renamed 100% identical across dirs ) do @was_files = { 'plain' => '' } @@ -103,8 +91,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9sF2E', %w( - versions_0_1_test 'C9sF2E', %w( + versions_test 'C9sF2E', %w( | empty file has some content added ) do @was_files = { 'empty.c' => '' } @@ -124,8 +111,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # non-empty file # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9sD09', %w( - versions_0_1_test 'C9sD09', %w( + versions_test 'C9sD09', %w( | non-empty file is created ) do # Saver v2 uses git and its implementation currently relies on there @@ -143,8 +129,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9s0C6', %w( - versions_0_1_test 'C9s0C6', %w( + versions_test 'C9s0C6', %w( | non-empty file is deleted ) do @was_files = { 'non-empty.h' => "two\nlines" } @@ -161,8 +146,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9s21D', %w( - versions_0_1_test 'C9s21D', %w( + versions_test 'C9s21D', %w( | non-empty file is unchanged ) do @was_files = { 'non-empty.h' => '#include' } @@ -177,8 +161,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9sAA7', %w( - versions_0_1_test 'C9sAA7', %w( + versions_test 'C9sAA7', %w( | non-empty file is renamed 100% identical ) do @was_files = { 'plain' => 'xxx' } @@ -193,8 +176,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9sBA7', %w( - versions_0_1_test 'C9sBA7', %w( + versions_test 'C9sBA7', %w( | non-empty file is renamed 100% identical across dirs ) do @was_files = { 'a/b/plain' => "a\nb\nc\nd" } @@ -212,8 +194,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9sAA8', %w( - versions_0_1_test 'C9sAA8', %w( + versions_test 'C9sAA8', %w( | non-empty file is renamed <100% identical ) do @was_files = { 'hiker.h' => "a\nb\nc\nd" } @@ -233,8 +214,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9sAA9', %w( - versions_0_1_test 'C9sAA9', %w( + versions_test 'C9sAA9', %w( | non-empty file is renamed <100% identical across dirs ) do @was_files = { '1/2/hiker.h' => "a\nb\nc\nd" } @@ -254,8 +234,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9s4D0', %w( - versions_0_1_test 'C9s4D0', %w( + versions_test 'C9s4D0', %w( | non-empty file has some content added at the start ) do @was_files = { 'non-empty.c' => 'something' } @@ -272,8 +251,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9s4D1', %w( - versions_0_1_test 'C9s4D1', %w( + versions_test 'C9s4D1', %w( | non-empty file has some content added at the end ) do @was_files = { 'non-empty.c' => 'something' } @@ -290,8 +268,7 @@ def self.version_test(version, id58_suffix, *lines, &block) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #versions_test 'C9s4D2', %w( - versions_0_1_test 'C9s4D2', %w( + versions_test 'C9s4D2', %w( | non-empty file has some content added in the middle ) do @was_files = { 'non-empty.c' => "a\nc" } @@ -326,7 +303,7 @@ def self.version_test(version, id58_suffix, *lines, &block) def assert_diff(raw_expected) expected = expected_diff(raw_expected) - assert_diff_lines(expected) # << + assert_diff_lines(expected) expected[0].delete(:lines) assert_diff_summary(expected) end @@ -358,8 +335,19 @@ def diagnostic(_type, expected, diff) def run_diff_prepare id = saver.kata_create(starter_manifest) - kata_ran_tests(id, was_index = 1, @was_files) - kata_ran_tests(id, now_index = 2, @now_files) + event = saver.kata_event(id, 0) + event['files'].each do |filename, data| + @was_files[filename] = data['content'] + end + was_index = event['index'] + 1 + result = kata_ran_tests(id, was_index, @was_files) + now_index = result['next_index'] + + event['files'].each do |filename, data| + @now_files[filename] = data['content'] + end + _result = kata_ran_tests(id, now_index, @now_files) + [id, was_index, now_index] end diff --git a/test/server/lib/coverage_metrics_limits.rb b/test/server/lib/coverage_metrics_limits.rb index 11e7774f..db783255 100644 --- a/test/server/lib/coverage_metrics_limits.rb +++ b/test/server/lib/coverage_metrics_limits.rb @@ -3,7 +3,7 @@ def metrics [ [ nil ], - [ 'test.lines.total' , '<=', 517 ], + [ 'test.lines.total' , '<=', 526 ], [ 'test.lines.missed' , '<=', 0 ], [ 'test.branches.total' , '<=', 0 ], [ 'test.branches.missed', '<=', 0 ], diff --git a/test/server/lib/test_metrics_limits.rb b/test/server/lib/test_metrics_limits.rb index f40e7a68..c9eb0dba 100644 --- a/test/server/lib/test_metrics_limits.rb +++ b/test/server/lib/test_metrics_limits.rb @@ -3,7 +3,7 @@ def metrics [ [ nil ], - [ 'test_count', '>=', 90 ], + [ 'test_count', '>=', 106 ], [ 'total_time', '<=', 75 ], [ nil ], [ 'failure_count', '<=', 0 ], diff --git a/test/server/saver.rb b/test/server/saver.rb index d4a43ec5..de4a13d1 100644 --- a/test/server/saver.rb +++ b/test/server/saver.rb @@ -18,9 +18,9 @@ def kata_manifest(id) @http.get(__method__, { id: id }) end - #def kata_event(id, index) - # @http.get(__method__, { id: id, index: index }) - #end + def kata_event(id, index) + @http.get(__method__, { id: id, index: index }) + end def kata_ran_tests(id, index, files, stdout, stderr, status, summary) @http.post(__method__, {