aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2025-06-26 14:47:38 +0200
committerJeroen van Rijn <Kelimion@users.noreply.github.com>2025-06-26 14:47:38 +0200
commit1fbc5641c0212dc30ea514f69a640a6d1fb5bd11 (patch)
treec892c496618cbc970cbb0c70dae9ee86ca94b02c /tests
parent8410871cb8cc122572ff55ef929f6acd35782677 (diff)
Add to `tests/internal`
Turn repro code into a proper test, and delete superfluous files from Odin root.
Diffstat (limited to 'tests')
-rw-r--r--tests/internal/test_signedness_comparisons.odin34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/internal/test_signedness_comparisons.odin b/tests/internal/test_signedness_comparisons.odin
new file mode 100644
index 000000000..5e7431c7a
--- /dev/null
+++ b/tests/internal/test_signedness_comparisons.odin
@@ -0,0 +1,34 @@
+package test_internal
+
+import "core:testing"
+
+@test
+test_comparisons_5408 :: proc(t: ^testing.T) {
+ // See: https://github.com/odin-lang/Odin/pull/5408
+ test_proc :: proc(lhs: $T, rhs: T) -> bool {
+ return lhs > rhs
+ }
+
+ Test_Enum :: enum u32 {
+ SMALL_VALUE = 0xFF,
+ BIG_VALUE = 0xFF00_0000, // negative if interpreted as i32
+ }
+
+ testing.expect_value(t, test_proc(Test_Enum.SMALL_VALUE, Test_Enum.BIG_VALUE), false)
+ testing.expect_value(t, test_proc(Test_Enum(0xF), Test_Enum.BIG_VALUE), false)
+ testing.expect_value(t, test_proc(Test_Enum(0xF), Test_Enum(0xF000_0000)), false)
+ testing.expect_value(t, test_proc(Test_Enum.SMALL_VALUE, max(Test_Enum)), false)
+ testing.expect_value(t, test_proc(Test_Enum(0xF), max(Test_Enum)), false)
+}
+
+test_signedness :: proc(t: ^testing.T) {
+ {
+ a, b := i16(32767), i16(0)
+ testing.expect_value(t, a > b, true)
+ }
+
+ {
+ a, b := u16(65535), u16(0)
+ testing.expect_value(t, a > b, true)
+ }
+} \ No newline at end of file