Browse Source

Add `core:mem` tests.

Jeroen van Rijn 1 year ago
parent
commit
28ea9425fd
3 changed files with 15 additions and 8 deletions
  1. 6 8
      core/mem/tlsf/tlsf_internal.odin
  2. 4 0
      tests/core/Makefile
  3. 5 0
      tests/core/build.bat

+ 6 - 8
core/mem/tlsf/tlsf_internal.odin

@@ -124,16 +124,14 @@ ffs :: proc "contextless" (word: u32) -> (bit: i32) {
 
 
 @(require_results)
 @(require_results)
 fls :: proc "contextless" (word: u32) -> (bit: i32) {
 fls :: proc "contextless" (word: u32) -> (bit: i32) {
-	return i32(31 - intrinsics.count_leading_zeros(word))
+	N :: (size_of(u32) * 8) - 1
+	return i32(N - intrinsics.count_leading_zeros(word))
 }
 }
 
 
-when size_of(uintptr) == 8 {
-	@(require_results)
-	fls_uint :: proc "contextless" (size: uint) -> (bit: i32) {
-		return i32(63 - intrinsics.count_leading_zeros(size))
-	}
-} else {
-	fls_uint :: fls_u32
+@(require_results)
+fls_uint :: proc "contextless" (size: uint) -> (bit: i32) {
+	N :: (size_of(uint) * 8) - 1
+	return i32(N - intrinsics.count_leading_zeros(size))
 }
 }
 
 
 @(require_results)
 @(require_results)

+ 4 - 0
tests/core/Makefile

@@ -19,6 +19,7 @@ all_bsd: download_test_assets \
          linalg_glsl_math_test \
          linalg_glsl_math_test \
          match_test \
          match_test \
          math_test \
          math_test \
+         mem_test \
          noise_test \
          noise_test \
          odin_test \
          odin_test \
          os_exit_test \
          os_exit_test \
@@ -80,6 +81,9 @@ linalg_glsl_math_test:
 noise_test:
 noise_test:
 	$(ODIN) test math/noise $(COMMON) -out:test_noise
 	$(ODIN) test math/noise $(COMMON) -out:test_noise
 
 
+mem_test:
+	$(ODIN) test mem $(COMMON) -out:test_core_mem
+
 net_test:
 net_test:
 	$(ODIN) test net $(COMMON) -out:test_core_net
 	$(ODIN) test net $(COMMON) -out:test_core_net
 
 

+ 5 - 0
tests/core/build.bat

@@ -78,6 +78,11 @@ echo Running core:math/noise tests
 echo ---
 echo ---
 %PATH_TO_ODIN% test math/noise %COMMON% -out:test_noise.exe || exit /b
 %PATH_TO_ODIN% test math/noise %COMMON% -out:test_noise.exe || exit /b
 
 
+echo ---
+echo Running core:mem tests
+echo ---
+%PATH_TO_ODIN% test mem %COMMON% -out:test_core_mem.exe || exit /b
+
 echo ---
 echo ---
 echo Running core:net
 echo Running core:net
 echo ---
 echo ---