diff options
| author | Alexander Potapenko <glider@google.com> | 2024-12-05 11:21:48 +0100 |
|---|---|---|
| committer | Alexander Potapenko <glider@google.com> | 2024-12-05 10:57:12 +0000 |
| commit | 31e83944d0a78e544fe45fb61f21f929607d08e3 (patch) | |
| tree | d78b57535060b8c2250394733e09c832625255e9 | |
| parent | 3255c6513f118900b5c41e9cf7a93c09118e2a29 (diff) | |
executor: add test_syzos() for arm64
Make sure regressions in guest code validation are reported during testing
rather than fuzzing.
| -rw-r--r-- | executor/test.h | 7 | ||||
| -rw-r--r-- | executor/test_linux.h | 16 |
2 files changed, 21 insertions, 2 deletions
diff --git a/executor/test.h b/executor/test.h index ba318dece..8997ef52f 100644 --- a/executor/test.h +++ b/executor/test.h @@ -1,7 +1,7 @@ // Copyright 2017 syzkaller project authors. All rights reserved. // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. -#if GOOS_linux && (GOARCH_amd64 | GOARCH_ppc64 | GOARCH_ppc64le) +#if GOOS_linux && (GOARCH_amd64 || GOARCH_ppc64 || GOARCH_ppc64le || GOARCH_arm64) #include "test_linux.h" #endif @@ -372,9 +372,12 @@ static struct { {"test_copyin", test_copyin}, {"test_csum_inet", test_csum_inet}, {"test_csum_inet_acc", test_csum_inet_acc}, -#if GOOS_linux && (GOARCH_amd64 || GOARCH_ppc64 || GOARCH_ppc64le) +#if GOOS_linux && (GOARCH_amd64 || GOARCH_ppc64 || GOARCH_ppc64le || GOARCH_arm64) {"test_kvm", test_kvm}, #endif +#if GOOS_linux && GOARCH_arm64 + {"test_syzos", test_syzos}, +#endif {"test_cover_filter", test_cover_filter}, {"test_glob", test_glob}, }; diff --git a/executor/test_linux.h b/executor/test_linux.h index 8c9493539..6d36d201e 100644 --- a/executor/test_linux.h +++ b/executor/test_linux.h @@ -304,3 +304,19 @@ static int cpu_feature_enabled(uint32_t function, uint32_t eax_bits, uint32_t eb return 0; } #endif + +#ifdef GOARCH_arm64 +static int test_syzos() +{ + int mem_size = SYZ_PAGE_SIZE * 4; + void* mem = mmap(0, mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + if (mem == MAP_FAILED) { + printf("mmap failed (%d)\n", errno); + return 1; + } + // Right now SyzOS testing just boils down to installing code into memory. + install_syzos_code(mem, mem_size); + munmap(mem, mem_size); + return 0; +} +#endif |
