aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/taskqueue/processor_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'backend/taskqueue/processor_test.go')
-rw-r--r--backend/taskqueue/processor_test.go41
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))
+ }
+}