{"status"=>"error", "version"=>2, "tests"=>[{"name"=>"TestNameValid", "status"=>"pass", "test_code"=>"func TestNameValid(t *testing.T) {\n\tn := New().getName(t, false)\n\tif !namePat.MatchString(n) {\n\t\tt.Errorf(`Invalid robot name %q, want form \"AA###\".`, n)\n\t}\n}", "message"=>"\n=== RUN TestNameValid\n\n--- PASS: TestNameValid (0.00s)\n"}, {"name"=>"TestNameSticks", "status"=>"pass", "test_code"=>"func TestNameSticks(t *testing.T) {\n\tr := New()\n\tn1 := r.getName(t, false)\n\tn2 := r.getName(t, true)\n\tif n2 != n1 {\n\t\tt.Errorf(`Robot name changed. Now %s, was %s.`, n2, n1)\n\t}\n}", "message"=>"\n=== RUN TestNameSticks\n\n--- PASS: TestNameSticks (0.00s)\n"}, {"name"=>"TestSuccessiveRobotsHaveDifferentNames", "status"=>"pass", "test_code"=>"func TestSuccessiveRobotsHaveDifferentNames(t *testing.T) {\n\tn1 := New().getName(t, false)\n\tn2 := New().getName(t, false)\n\tif n1 == n2 {\n\t\tt.Errorf(`Robots with same name. Two %s's.`, n1)\n\t}\n}", "message"=>"\n=== RUN TestSuccessiveRobotsHaveDifferentNames\n\n--- PASS: TestSuccessiveRobotsHaveDifferentNames (0.00s)\n"}, {"name"=>"TestResetName", "status"=>"pass", "test_code"=>"func TestResetName(t *testing.T) {\n\tr := New()\n\tn1 := r.getName(t, false)\n\tr.Reset()\n\tif r.getName(t, false) == n1 {\n\t\tt.Errorf(`Robot name not cleared on reset. Still %s.`, n1)\n\t}\n}", "message"=>"\n=== RUN TestResetName\n\n--- PASS: TestResetName (0.00s)\n"}, {"name"=>"TestMultipleNames", "status"=>"pass", "test_code"=>"// Test 1000 naems are unique - this should run reasonably quickly even with a sub-optimal solution\n// (e.g. pick a random name, then pick a new name if it's been seen before)\nfunc TestMultipleNames(t *testing.T) {\n\t// Test uniqueness for new robots.\n\tfor i := len(seen); i <= 1000; i++ {\n\t\tNew().getName(t, false)\n\t}\n}", "message"=>"\n=== RUN TestMultipleNames\n\n--- PASS: TestMultipleNames (0.00s)\n"}, {"name"=>"TestCollisions", "status"=>"skip", "test_code"=>"// TestCollisions tests if unique names are generated by creating new robots until all names are used.\nfunc TestCollisions(t *testing.T) {\n\t// Remove the next line to make this test run\n\tt.Skip(\"skipping test as it can take a long time to run if solution is sub-optimal.\")\n\n\t// Test uniqueness for new robots.\n\tfor i := len(seen); i <= lotsOfNames; i++ {\n\t\tNew().getName(t, false)\n\t}\n\n\t// Test that names aren't recycled either.\n\t// Note that this runs till names are exhausted.\n\tr := New()\n\tfor i := len(seen); i < maxNames; i++ {\n\t\tr.Reset()\n\t\tr.getName(t, false)\n\t}\n\n\t// Test that name exhaustion is handled more or less correctly.\n\t_, err := New().Name()\n\tif err == nil {\n\t\tt.Fatalf(\"should return error if namespace is exhausted\")\n\t}\n}", "message"=>"\n=== RUN TestCollisions\n\n robot_name_test.go:82: skipping test as it can take a long time to run if solution is sub-optimal.\n\n--- SKIP: TestCollisions (0.00s)\n"}]}
The status is error, but there is no corrosponding message. Should the status by fail? Or has something validly eroneous happened which has led to an error but not attached a message?
Reference chat: https://exercism-team.slack.com/archives/CAS0EK88H/p1635353715044200
Output from Test Runner:
The status is
error
, but there is no corrospondingmessage
. Should the status byfail
? Or has something validly eroneous happened which has led to an error but not attached amessage
?