From 8af08f2153294174075b569e81f421a2efd4b183 Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Thu, 3 Mar 2022 15:10:19 +0100 Subject: [PATCH 1/2] [compress] 32-bit cleanness. --- core/compress/common.odin | 8 +++++++- core/compress/gzip/gzip.odin | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/compress/common.odin b/core/compress/common.odin index 5f5ef2413..8bc7d240d 100644 --- a/core/compress/common.odin +++ b/core/compress/common.odin @@ -139,7 +139,13 @@ Context_Memory_Input :: struct #packed { size_packed: i64, size_unpacked: i64, } -#assert(size_of(Context_Memory_Input) == 64) +when size_of(rawptr) == 8 { + #assert(size_of(Context_Memory_Input) == 64) +} else { + // e.g. `-target:windows_386` + #assert(size_of(Context_Memory_Input) == 52) +} + Context_Stream_Input :: struct #packed { input_data: []u8, diff --git a/core/compress/gzip/gzip.odin b/core/compress/gzip/gzip.odin index 96e9c49a0..4482d4a7e 100644 --- a/core/compress/gzip/gzip.odin +++ b/core/compress/gzip/gzip.odin @@ -100,7 +100,7 @@ E_GZIP :: compress.GZIP_Error E_ZLIB :: compress.ZLIB_Error E_Deflate :: compress.Deflate_Error -GZIP_MAX_PAYLOAD_SIZE :: int(max(u32le)) +GZIP_MAX_PAYLOAD_SIZE :: i64(max(u32le)) load :: proc{load_from_slice, load_from_file, load_from_context} @@ -136,7 +136,7 @@ load_from_context :: proc(z: ^$C, buf: ^bytes.Buffer, known_gzip_size := -1, exp z.output = buf - if expected_output_size > GZIP_MAX_PAYLOAD_SIZE { + if i64(expected_output_size) > i64(GZIP_MAX_PAYLOAD_SIZE) { return E_GZIP.Payload_Size_Exceeds_Max_Payload } From 6d9f84ba030c3903dbfb213ee0a0e7a83d410b71 Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Thu, 3 Mar 2022 15:16:16 +0100 Subject: [PATCH 2/2] [tests] Make test runners exit with errorlevel 1 if a test fails. --- tests/core/compress/test_core_compress.odin | 3 +++ tests/core/crypto/test_core_crypto.odin | 4 ++++ tests/core/encoding/test_core_json.odin | 4 ++++ tests/core/hash/test_core_hash.odin | 4 ++++ tests/core/image/test_core_image.odin | 3 +++ tests/core/math/noise/test_core_math_noise.odin | 4 ++++ tests/core/odin/test_parser.odin | 5 ++++- tests/core/strings/test_core_strings.odin | 4 ++++ tests/vendor/botan/test_vendor_botan.odin | 4 ++++ tests/vendor/glfw/test_vendor_glfw.odin | 4 ++++ 10 files changed, 38 insertions(+), 1 deletion(-) diff --git a/tests/core/compress/test_core_compress.odin b/tests/core/compress/test_core_compress.odin index c925c0258..73c69445a 100644 --- a/tests/core/compress/test_core_compress.odin +++ b/tests/core/compress/test_core_compress.odin @@ -52,6 +52,9 @@ main :: proc() { gzip_test(&t) fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count) + if TEST_fail > 0 { + os.exit(1) + } } @test diff --git a/tests/core/crypto/test_core_crypto.odin b/tests/core/crypto/test_core_crypto.odin index 5682a6167..f2e5b48d9 100644 --- a/tests/core/crypto/test_core_crypto.odin +++ b/tests/core/crypto/test_core_crypto.odin @@ -37,6 +37,7 @@ import "core:crypto/jh" import "core:crypto/groestl" import "core:crypto/haval" import "core:crypto/siphash" +import "core:os" TEST_count := 0 TEST_fail := 0 @@ -127,6 +128,9 @@ main :: proc() { bench_modern(&t) fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count) + if TEST_fail > 0 { + os.exit(1) + } } TestHash :: struct { diff --git a/tests/core/encoding/test_core_json.odin b/tests/core/encoding/test_core_json.odin index f536eb4c6..702086ea2 100644 --- a/tests/core/encoding/test_core_json.odin +++ b/tests/core/encoding/test_core_json.odin @@ -3,6 +3,7 @@ package test_core_json import "core:encoding/json" import "core:testing" import "core:fmt" +import "core:os" TEST_count := 0 TEST_fail := 0 @@ -34,6 +35,9 @@ main :: proc() { marshal_json(&t) fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count) + if TEST_fail > 0 { + os.exit(1) + } } @test diff --git a/tests/core/hash/test_core_hash.odin b/tests/core/hash/test_core_hash.odin index 8baa604b6..f68767612 100644 --- a/tests/core/hash/test_core_hash.odin +++ b/tests/core/hash/test_core_hash.odin @@ -5,6 +5,7 @@ import "core:hash" import "core:time" import "core:testing" import "core:fmt" +import "core:os" TEST_count := 0 TEST_fail := 0 @@ -35,6 +36,9 @@ main :: proc() { test_xxhash_vectors(&t) test_crc64_vectors(&t) fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count) + if TEST_fail > 0 { + os.exit(1) + } } /* diff --git a/tests/core/image/test_core_image.odin b/tests/core/image/test_core_image.odin index 124166245..2171a0d92 100644 --- a/tests/core/image/test_core_image.odin +++ b/tests/core/image/test_core_image.odin @@ -57,6 +57,9 @@ main :: proc() { png_test(&t) fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count) + if TEST_fail > 0 { + os.exit(1) + } } PNG_Test :: struct { diff --git a/tests/core/math/noise/test_core_math_noise.odin b/tests/core/math/noise/test_core_math_noise.odin index c3a3e4228..be89d076a 100644 --- a/tests/core/math/noise/test_core_math_noise.odin +++ b/tests/core/math/noise/test_core_math_noise.odin @@ -3,6 +3,7 @@ package test_core_math_noise import "core:testing" import "core:math/noise" import "core:fmt" +import "core:os" TEST_count := 0 TEST_fail := 0 @@ -35,6 +36,9 @@ main :: proc() { t := testing.T{} noise_test(&t) fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count) + if TEST_fail > 0 { + os.exit(1) + } } Test_Vector :: struct { diff --git a/tests/core/odin/test_parser.odin b/tests/core/odin/test_parser.odin index 90d913d10..ef31f91db 100644 --- a/tests/core/odin/test_parser.odin +++ b/tests/core/odin/test_parser.odin @@ -2,7 +2,7 @@ package test_core_odin_parser import "core:testing" import "core:fmt" - +import "core:os" import "core:odin/parser" @@ -35,6 +35,9 @@ main :: proc() { test_parse_demo(&t) fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count) + if TEST_fail > 0 { + os.exit(1) + } } diff --git a/tests/core/strings/test_core_strings.odin b/tests/core/strings/test_core_strings.odin index fc1518349..c1f9603fd 100644 --- a/tests/core/strings/test_core_strings.odin +++ b/tests/core/strings/test_core_strings.odin @@ -3,6 +3,7 @@ package test_core_image import "core:strings" import "core:testing" import "core:fmt" +import "core:os" TEST_count := 0 TEST_fail := 0 @@ -35,6 +36,9 @@ main :: proc() { test_index_any_larger_string_found(&t) fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count) + if TEST_fail > 0 { + os.exit(1) + } } @test diff --git a/tests/vendor/botan/test_vendor_botan.odin b/tests/vendor/botan/test_vendor_botan.odin index 148eb03bd..f0ff44ac9 100644 --- a/tests/vendor/botan/test_vendor_botan.odin +++ b/tests/vendor/botan/test_vendor_botan.odin @@ -14,6 +14,7 @@ package test_vendor_botan import "core:testing" import "core:fmt" +import "core:os" import "vendor:botan/md4" import "vendor:botan/md5" @@ -86,6 +87,9 @@ main :: proc() { test_siphash_2_4(&t) fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count) + if TEST_fail > 0 { + os.exit(1) + } } TestHash :: struct { diff --git a/tests/vendor/glfw/test_vendor_glfw.odin b/tests/vendor/glfw/test_vendor_glfw.odin index 252df2033..baf46aa7e 100644 --- a/tests/vendor/glfw/test_vendor_glfw.odin +++ b/tests/vendor/glfw/test_vendor_glfw.odin @@ -3,6 +3,7 @@ package test_vendor_glfw import "core:testing" import "core:fmt" import "vendor:glfw" +import "core:os" GLFW_MAJOR :: 3 GLFW_MINOR :: 3 @@ -36,6 +37,9 @@ main :: proc() { test_glfw(&t) fmt.printf("%v/%v tests successful.\n", TEST_count - TEST_fail, TEST_count) + if TEST_fail > 0 { + os.exit(1) + } } @(test)