mirror of
				https://git.wownero.com/wownero/RandomWOW.git
				synced 2024-08-15 00:23:14 +00:00 
			
		
		
		
	Merge pull request #142 from ston1th/fix_openbsd_tests
Fixed tests on OpenBSD
This commit is contained in:
		
						commit
						34aba9dc8a
					
				
					 5 changed files with 26 additions and 3 deletions
				
			
		|  | @ -42,6 +42,11 @@ extern "C" { | ||||||
| 	randomx_flags randomx_get_flags() { | 	randomx_flags randomx_get_flags() { | ||||||
| 		randomx_flags flags = RANDOMX_HAVE_COMPILER ? RANDOMX_FLAG_JIT : RANDOMX_FLAG_DEFAULT; | 		randomx_flags flags = RANDOMX_HAVE_COMPILER ? RANDOMX_FLAG_JIT : RANDOMX_FLAG_DEFAULT; | ||||||
| 		randomx::Cpu cpu; | 		randomx::Cpu cpu; | ||||||
|  | #ifdef __OpenBSD__ | ||||||
|  | 		if (flags == RANDOMX_FLAG_JIT) { | ||||||
|  | 			flags |= RANDOMX_FLAG_SECURE; | ||||||
|  | 		} | ||||||
|  | #endif | ||||||
| 		if (HAVE_AES && cpu.hasAes()) { | 		if (HAVE_AES && cpu.hasAes()) { | ||||||
| 			flags |= RANDOMX_FLAG_HARD_AES; | 			flags |= RANDOMX_FLAG_HARD_AES; | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | @ -83,6 +83,7 @@ extern "C" { | ||||||
|  *            RANDOMX_FLAG_FULL_MEM |  *            RANDOMX_FLAG_FULL_MEM | ||||||
|  *            RANDOMX_FLAG_SECURE |  *            RANDOMX_FLAG_SECURE | ||||||
|  *         These flags must be added manually if desired. |  *         These flags must be added manually if desired. | ||||||
|  |  *         On OpenBSD RANDOMX_FLAG_SECURE is enabled by default in JIT mode as W^X is enforced by the OS. | ||||||
|  */ |  */ | ||||||
| RANDOMX_EXPORT randomx_flags randomx_get_flags(void); | RANDOMX_EXPORT randomx_flags randomx_get_flags(void); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -65,7 +65,7 @@ set_thread_affinity(std::thread::native_handle_type thread, | ||||||
|             (thread_policy_t)&policy, 1); |             (thread_policy_t)&policy, 1); | ||||||
| #elif defined(_WIN32) || defined(__CYGWIN__) | #elif defined(_WIN32) || defined(__CYGWIN__) | ||||||
|     rc = SetThreadAffinityMask(reinterpret_cast<HANDLE>(thread), 1ULL << cpuid) == 0 ? -2 : 0; |     rc = SetThreadAffinityMask(reinterpret_cast<HANDLE>(thread), 1ULL << cpuid) == 0 ? -2 : 0; | ||||||
| #else | #elif !defined(__OpenBSD__) | ||||||
|     cpu_set_t cs; |     cpu_set_t cs; | ||||||
|     CPU_ZERO(&cs); |     CPU_ZERO(&cs); | ||||||
|     CPU_SET(cpuid, &cs); |     CPU_SET(cpuid, &cs); | ||||||
|  |  | ||||||
|  | @ -190,6 +190,9 @@ int main(int argc, char** argv) { | ||||||
| 		} | 		} | ||||||
| 		if (jit) { | 		if (jit) { | ||||||
| 			flags |= RANDOMX_FLAG_JIT; | 			flags |= RANDOMX_FLAG_JIT; | ||||||
|  | #ifdef __OpenBSD__ | ||||||
|  | 			flags |= RANDOMX_FLAG_SECURE; | ||||||
|  | #endif | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -199,9 +202,11 @@ int main(int argc, char** argv) { | ||||||
| 	if (miningMode) { | 	if (miningMode) { | ||||||
| 		flags |= RANDOMX_FLAG_FULL_MEM; | 		flags |= RANDOMX_FLAG_FULL_MEM; | ||||||
| 	} | 	} | ||||||
|  | #ifndef __OpenBSD__ | ||||||
| 	if (secure) { | 	if (secure) { | ||||||
| 		flags |= RANDOMX_FLAG_SECURE; | 		flags |= RANDOMX_FLAG_SECURE; | ||||||
| 	} | 	} | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| 	if (flags & RANDOMX_FLAG_ARGON2_AVX2) { | 	if (flags & RANDOMX_FLAG_ARGON2_AVX2) { | ||||||
| 		std::cout << " - Argon2 implementation: AVX2" << std::endl; | 		std::cout << " - Argon2 implementation: AVX2" << std::endl; | ||||||
|  |  | ||||||
|  | @ -143,7 +143,11 @@ int main() { | ||||||
| 		randomx::JitCompiler jit; | 		randomx::JitCompiler jit; | ||||||
| 		jit.generateSuperscalarHash(cache->programs, cache->reciprocalCache); | 		jit.generateSuperscalarHash(cache->programs, cache->reciprocalCache); | ||||||
| 		jit.generateDatasetInitCode(); | 		jit.generateDatasetInitCode(); | ||||||
|  | #ifdef __OpenBSD__ | ||||||
|  | 		jit.enableExecution(); | ||||||
|  | #else | ||||||
| 		jit.enableAll(); | 		jit.enableAll(); | ||||||
|  | #endif | ||||||
| 		uint64_t datasetItem[8]; | 		uint64_t datasetItem[8]; | ||||||
| 		jit.getDatasetInitFunc()(cache, (uint8_t*)&datasetItem, 0, 1); | 		jit.getDatasetInitFunc()(cache, (uint8_t*)&datasetItem, 0, 1); | ||||||
| 		assert(datasetItem[0] == 0x680588a85ae222db); | 		assert(datasetItem[0] == 0x680588a85ae222db); | ||||||
|  | @ -950,7 +954,11 @@ int main() { | ||||||
| 		assert(ibc.memMask == randomx::ScratchpadL3Mask); | 		assert(ibc.memMask == randomx::ScratchpadL3Mask); | ||||||
| 	}); | 	}); | ||||||
| 
 | 
 | ||||||
|  | #ifdef __OpenBSD__ | ||||||
|  | 	vm = randomx_create_vm(RANDOMX_FLAG_DEFAULT | RANDOMX_FLAG_SECURE, cache, nullptr); | ||||||
|  | #else | ||||||
| 	vm = randomx_create_vm(RANDOMX_FLAG_DEFAULT, cache, nullptr); | 	vm = randomx_create_vm(RANDOMX_FLAG_DEFAULT, cache, nullptr); | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| 	auto test_a = [&] { | 	auto test_a = [&] { | ||||||
| 		char hash[RANDOMX_HASH_SIZE]; | 		char hash[RANDOMX_HASH_SIZE]; | ||||||
|  | @ -1001,7 +1009,11 @@ int main() { | ||||||
| 		vm = nullptr; | 		vm = nullptr; | ||||||
| 		cache = randomx_alloc_cache(RANDOMX_FLAG_JIT); | 		cache = randomx_alloc_cache(RANDOMX_FLAG_JIT); | ||||||
| 		initCache("test key 000"); | 		initCache("test key 000"); | ||||||
| 		vm = randomx_create_vm(RANDOMX_FLAG_JIT, cache, nullptr); | #ifdef __OpenBSD__ | ||||||
|  | 		vm = randomx_create_vm(RANDOMX_FLAG_DEFAULT | RANDOMX_FLAG_SECURE, cache, nullptr); | ||||||
|  | #else | ||||||
|  | 		vm = randomx_create_vm(RANDOMX_FLAG_DEFAULT, cache, nullptr); | ||||||
|  | #endif | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	runTest("Hash test 2a (compiler)", RANDOMX_HAVE_COMPILER && stringsEqual(RANDOMX_ARGON_SALT, "RandomX\x03"), test_a); | 	runTest("Hash test 2a (compiler)", RANDOMX_HAVE_COMPILER && stringsEqual(RANDOMX_ARGON_SALT, "RandomX\x03"), test_a); | ||||||
|  | @ -1048,4 +1060,4 @@ int main() { | ||||||
| 	if (skipped) { | 	if (skipped) { | ||||||
| 		std::cout << skipped << " tests were SKIPPED due to incompatible configuration (see above)" << std::endl; | 		std::cout << skipped << " tests were SKIPPED due to incompatible configuration (see above)" << std::endl; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue