aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2024-05-31 12:14:33 +0200
committerFeoramund <161657516+Feoramund@users.noreply.github.com>2024-06-02 14:47:09 -0400
commitdacb0f7786f5eb1e05b06179a5f68b587aa9db8a (patch)
treef066271c39cfd4bd660ab76a5fa3bb362f255bb4
parent5b1ffba915286209b83c444d40f9fcb4d44c9bc8 (diff)
Port `tests\core\thread`
-rw-r--r--tests/common/common.odin81
-rw-r--r--tests/core/Makefile3
-rw-r--r--tests/core/build.bat3
-rw-r--r--tests/core/test_core_odinbin1401192 -> 0 bytes
-rw-r--r--tests/core/thread/test_core_thread.odin56
5 files changed, 14 insertions, 129 deletions
diff --git a/tests/common/common.odin b/tests/common/common.odin
deleted file mode 100644
index 021fb21c5..000000000
--- a/tests/common/common.odin
+++ /dev/null
@@ -1,81 +0,0 @@
-// Boilerplate for tests
-package common
-
-import "core:testing"
-import "core:fmt"
-import "core:os"
-import "core:strings"
-
-TEST_count := 0
-TEST_fail := 0
-
-when ODIN_TEST {
- expect :: testing.expect
- log :: testing.log
- errorf :: testing.errorf
-} else {
- expect :: proc(t: ^testing.T, condition: bool, message: string, loc := #caller_location) {
- TEST_count += 1
- if !condition {
- TEST_fail += 1
- fmt.printf("[%v:%s] FAIL %v\n", loc, loc.procedure, message)
- return
- }
- }
- errorf :: proc(t: ^testing.T, message: string, args: ..any, loc := #caller_location) {
- TEST_fail += 1
- fmt.printf("[%v:%s] Error %v\n", loc, loc.procedure, fmt.tprintf(message, ..args))
- return
- }
- log :: proc(t: ^testing.T, v: any, loc := #caller_location) {
- fmt.printf("[%v] ", loc)
- fmt.printf("log: %v\n", v)
- }
-}
-
-report :: proc(t: ^testing.T) {
- if TEST_fail > 0 {
- if TEST_fail > 1 {
- fmt.printf("%v/%v tests successful, %v tests failed.\n", TEST_count - TEST_fail, TEST_count, TEST_fail)
- } else {
- fmt.printf("%v/%v tests successful, 1 test failed.\n", TEST_count - TEST_fail, TEST_count)
- }
- os.exit(1)
- } else {
- fmt.printf("%v/%v tests successful.\n", TEST_count, TEST_count)
- }
-}
-
-// Returns absolute path to `sub_path` where `sub_path` is within the "tests/" sub-directory of the Odin project root
-// and we're being run from the Odin project root or from a sub-directory of "tests/"
-// e.g. get_data_path("assets/blah") will return "/Odin_root/tests/assets/blah" if run within "/Odin_root",
-// "/Odin_root/tests" or "/Odin_root/tests/subdir" etc
-get_data_path :: proc(t: ^testing.T, sub_path: string) -> (data_path: string) {
-
- cwd := os.get_current_directory()
- defer delete(cwd)
-
- when ODIN_OS == .Windows {
- norm, was_allocation := strings.replace_all(cwd, "\\", "/")
- if !was_allocation {
- norm = strings.clone(norm)
- }
- defer delete(norm)
- } else {
- norm := cwd
- }
-
- last_index := strings.last_index(norm, "/tests/")
- if last_index == -1 {
- len := len(norm)
- if len >= 6 && norm[len-6:] == "/tests" {
- data_path = fmt.tprintf("%s/%s", norm, sub_path)
- } else {
- data_path = fmt.tprintf("%s/tests/%s", norm, sub_path)
- }
- } else {
- data_path = fmt.tprintf("%s/tests/%s", norm[:last_index], sub_path)
- }
-
- return data_path
-}
diff --git a/tests/core/Makefile b/tests/core/Makefile
index ec4cdcafd..4e13733b0 100644
--- a/tests/core/Makefile
+++ b/tests/core/Makefile
@@ -1,7 +1,6 @@
ODIN=../../odin
PYTHON=$(shell which python3)
COMMON=-no-bounds-check -vet -strict-style
-COLLECTION=-collection:tests=..
all: all_bsd \
net_test
@@ -103,7 +102,7 @@ strings_test:
$(ODIN) test strings $(COMMON) -out:test_core_strings
thread_test:
- $(ODIN) run thread $(COMMON) -out:test_core_thread
+ $(ODIN) test thread $(COMMON) -out:test_core_thread
time_test:
$(ODIN) test time $(COMMON) -out:test_core_time
diff --git a/tests/core/build.bat b/tests/core/build.bat
index 090369848..accf0808a 100644
--- a/tests/core/build.bat
+++ b/tests/core/build.bat
@@ -1,6 +1,5 @@
@echo off
set COMMON=-no-bounds-check -vet -strict-style
-set COLLECTION=-collection:tests=..
set PATH_TO_ODIN==..\..\odin
python3 download_assets.py
echo ---
@@ -112,7 +111,7 @@ echo ---
echo ---
echo Running core:thread tests
echo ---
-%PATH_TO_ODIN% run thread %COMMON% %COLLECTION% -out:test_core_thread.exe || exit /b
+%PATH_TO_ODIN% test thread %COMMON% -out:test_core_thread.exe || exit /b
echo ---
echo Running core:time tests
diff --git a/tests/core/test_core_odin b/tests/core/test_core_odin
deleted file mode 100644
index bdf316228..000000000
--- a/tests/core/test_core_odin
+++ /dev/null
Binary files differ
diff --git a/tests/core/thread/test_core_thread.odin b/tests/core/thread/test_core_thread.odin
index c0c7396a7..0b77ad511 100644
--- a/tests/core/thread/test_core_thread.odin
+++ b/tests/core/thread/test_core_thread.odin
@@ -2,39 +2,7 @@ package test_core_thread
import "core:testing"
import "core:thread"
-import "core:fmt"
-import "core:os"
-
-TEST_count := 0
-TEST_fail := 0
-
-t := &testing.T{}
-
-when ODIN_TEST {
- expect :: testing.expect
- log :: testing.log
-} else {
- expect :: proc(t: ^testing.T, condition: bool, message: string, loc := #caller_location) {
- TEST_count += 1
- if !condition {
- TEST_fail += 1
- fmt.printf("[%v] %v\n", loc, message)
- return
- }
- }
- log :: proc(t: ^testing.T, v: any, loc := #caller_location) {
- fmt.printf("[%v] ", loc)
- fmt.printf("log: %v\n", v)
- }
-}
-
-main :: proc() {
- poly_data_test(t)
-
- if TEST_fail > 0 {
- os.exit(1)
- }
-}
+import "base:intrinsics"
@(test)
poly_data_test :: proc(_t: ^testing.T) {
@@ -46,7 +14,7 @@ poly_data_test :: proc(_t: ^testing.T) {
b: [MAX]byte = 8
t1 := thread.create_and_start_with_poly_data(b, proc(b: [MAX]byte) {
b_expect: [MAX]byte = 8
- expect(poly_data_test_t, b == b_expect, "thread poly data not correct")
+ testing.expect(poly_data_test_t, b == b_expect, "thread poly data not correct")
})
defer free(t1)
@@ -55,8 +23,8 @@ poly_data_test :: proc(_t: ^testing.T) {
t2 := thread.create_and_start_with_poly_data2(b1, b2, proc(b: [3]uintptr, b2: [MAX / 2]byte) {
b_expect: [3]uintptr = 1
b2_expect: [MAX / 2]byte = 3
- expect(poly_data_test_t, b == b_expect, "thread poly data not correct")
- expect(poly_data_test_t, b2 == b2_expect, "thread poly data not correct")
+ testing.expect(poly_data_test_t, b == b_expect, "thread poly data not correct")
+ testing.expect(poly_data_test_t, b2 == b2_expect, "thread poly data not correct")
})
defer free(t2)
@@ -64,21 +32,21 @@ poly_data_test :: proc(_t: ^testing.T) {
b_expect: [3]uintptr = 1
b2_expect: [MAX / 2]byte = 3
- expect(poly_data_test_t, b == b_expect, "thread poly data not correct")
- expect(poly_data_test_t, b2 == b2_expect, "thread poly data not correct")
- expect(poly_data_test_t, b3 == 333, "thread poly data not correct")
+ testing.expect(poly_data_test_t, b == b_expect, "thread poly data not correct")
+ testing.expect(poly_data_test_t, b2 == b2_expect, "thread poly data not correct")
+ testing.expect(poly_data_test_t, b3 == 333, "thread poly data not correct")
})
defer free(t3)
t4 := thread.create_and_start_with_poly_data4(uintptr(111), b1, uintptr(333), u8(5), proc(n: uintptr, b: [3]uintptr, n2: uintptr, n4: u8) {
b_expect: [3]uintptr = 1
- expect(poly_data_test_t, n == 111, "thread poly data not correct")
- expect(poly_data_test_t, b == b_expect, "thread poly data not correct")
- expect(poly_data_test_t, n2 == 333, "thread poly data not correct")
- expect(poly_data_test_t, n4 == 5, "thread poly data not correct")
+ testing.expect(poly_data_test_t, n == 111, "thread poly data not correct")
+ testing.expect(poly_data_test_t, b == b_expect, "thread poly data not correct")
+ testing.expect(poly_data_test_t, n2 == 333, "thread poly data not correct")
+ testing.expect(poly_data_test_t, n4 == 5, "thread poly data not correct")
})
defer free(t4)
thread.join_multiple(t1, t2, t3, t4)
-}
+} \ No newline at end of file