diff options
Diffstat (limited to 'backend/taskqueue/processor_test.go')
| -rw-r--r-- | backend/taskqueue/processor_test.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/backend/taskqueue/processor_test.go b/backend/taskqueue/processor_test.go new file mode 100644 index 0000000..3646b4c --- /dev/null +++ b/backend/taskqueue/processor_test.go @@ -0,0 +1,41 @@ +package taskqueue + +import ( + "testing" +) + +func TestCalcCodeHash(t *testing.T) { + // Same code + same testcaseID should produce same hash + hash1 := calcCodeHash("echo hello", 1) + hash2 := calcCodeHash("echo hello", 1) + if hash1 != hash2 { + t.Errorf("same input produced different hashes: %q vs %q", hash1, hash2) + } + + // Different code should produce different hash + hash3 := calcCodeHash("echo world", 1) + if hash1 == hash3 { + t.Errorf("different code produced same hash: %q", hash1) + } + + // Different testcaseID should produce different hash + hash4 := calcCodeHash("echo hello", 2) + if hash1 == hash4 { + t.Errorf("different testcaseID produced same hash: %q", hash1) + } + + // Hash should be a valid hex md5 (32 characters) + if len(hash1) != 32 { + t.Errorf("hash length = %d, want 32", len(hash1)) + } +} + +func TestCalcCodeHash_EmptyCode(t *testing.T) { + hash := calcCodeHash("", 0) + if hash == "" { + t.Error("hash should not be empty for empty code") + } + if len(hash) != 32 { + t.Errorf("hash length = %d, want 32", len(hash)) + } +} |
