summary refs log tree commit diff stats
path: root/tests/stdlib/thashes.nim
diff options
context:
space:
mode:
authorc-blake <c-blake@users.noreply.github.com>2024-07-07 10:51:42 +0000
committerGitHub <noreply@github.com>2024-07-07 12:51:42 +0200
commit4faa15f3ad6504c3ba808e63ecd729d3fc3cb78a (patch)
treef60e8f2524195c8605d6f3e8e6c478a5534f0ab9 /tests/stdlib/thashes.nim
parent1dcc364cd2e284f831735e0fe9b988b08c82ac4f (diff)
downloadNim-4faa15f3ad6504c3ba808e63ecd729d3fc3cb78a.tar.gz
Replacement PR for https://github.com/nim-lang/Nim/pull/23779 that (#23793)
makes new hash the default, with an opt-out (& js-no-big-int) define.
Also update changelog (& fix one typo).

Only really expect the chronos hash-order sensitive test to fail until
they merge that PR and tag a new release.
Diffstat (limited to 'tests/stdlib/thashes.nim')
-rw-r--r--tests/stdlib/thashes.nim17
1 files changed, 12 insertions, 5 deletions
diff --git a/tests/stdlib/thashes.nim b/tests/stdlib/thashes.nim
index f7a1db232..4555fbcb3 100644
--- a/tests/stdlib/thashes.nim
+++ b/tests/stdlib/thashes.nim
@@ -1,5 +1,5 @@
 discard """
-  matrix: "--mm:refc; --mm:orc; --backend:cpp; --backend:js --jsbigint64:on; --backend:js --jsbigint64:off; --backend:c -d:nimPreviewHashFarm; --backend:cpp -d:nimPreviewHashFarm; --backend:js -d:nimPreviewHashFarm"
+  matrix: "--mm:refc; --mm:orc; --backend:cpp; --backend:js --jsbigint64:on; --backend:c -d:nimStringHash2; --backend:cpp -d:nimStringHash2; --backend:js -d:nimStringHash2"
 """
 
 import std/hashes
@@ -46,10 +46,18 @@ block hashes:
     else:
       doAssert hashWangYi1(456) == -6421749900419628582
 
+template jsNoInt64: untyped =
+  when defined js:
+    when compiles(compileOption("jsbigint64")):
+      when not compileOption("jsbigint64"): true
+      else: false
+    else: false
+  else: false
+const sHash2 = (when defined(nimStringHash2) or jsNoInt64(): true else: false)
+
 block empty:
   const emptyStrHash = # Hash=int=4B on js even w/--jsbigint64:on => cast[Hash]
-    when defined nimPreviewHashFarm: cast[Hash](-7286425919675154353i64)
-    else: 0
+    when sHash2: 0 else: cast[Hash](-7286425919675154353i64)
   var
     a = ""
     b = newSeq[char]()
@@ -96,8 +104,7 @@ block largeSize: # longer than 4 characters
 proc main() =
   doAssert hash(0.0) == hash(0)
   # bug #16061
-  when defined nimPreviewHashFarm: # Default switched -> `not nimStringHash2`
-    # Hash=int=4B on js even w/--jsbigint64:on => cast[Hash]
+  when not sHash2: # Hash=int=4B on js even w/--jsbigint64:on => cast[Hash]
     doAssert hash(cstring"abracadabra") == cast[Hash](-1119910118870047694i64)
   else:
     doAssert hash(cstring"abracadabra") == 97309975