diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2026-03-10 13:22:23 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2026-03-10 13:22:23 +0100 |
| commit | 825830590663c363b32c7b9caae8db5f3a5c913f (patch) | |
| tree | bbfee9802cbd8e9516202aea23868c7b157375cf /test/kernel_tests/ne_kernel_tests/error.test.cc | |
| parent | df47a78546330050a58d738ef1de90cfb1f4bca9 (diff) | |
[CHORE] Rename unit test directories.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'test/kernel_tests/ne_kernel_tests/error.test.cc')
| -rw-r--r-- | test/kernel_tests/ne_kernel_tests/error.test.cc | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/test/kernel_tests/ne_kernel_tests/error.test.cc b/test/kernel_tests/ne_kernel_tests/error.test.cc new file mode 100644 index 00000000..ece8f71d --- /dev/null +++ b/test/kernel_tests/ne_kernel_tests/error.test.cc @@ -0,0 +1,67 @@ +/// \file error.test.cc +/// \brief Error handling API tests. +/// \author Amlal El Mahrouss (amlal at nekernel dot org) + +#include <libSystem/SystemKit/System.h> +#include <public/frameworks/KernelTest.fwrk/headers/TestCase.h> + +/// \note ErrGetLastError tests +KT_DECL_TEST(ErrGetLastErrorInitial, []() -> bool { + SInt32 error = ErrGetLastError(); + return error >= 0; +}); + +KT_DECL_TEST(ErrGetLastErrorAfterSuccess, []() -> bool { + auto heap = MmCreateHeap(1024, 0); + if (!heap) return NO; + + SInt32 error = ErrGetLastError(); + MmDestroyHeap(heap); + + return error == 0; +}); + +KT_DECL_TEST(ErrGetLastErrorAfterFailure, []() -> bool { + auto heap = MmCreateHeap(0, 0); + + SInt32 error = ErrGetLastError(); + + return error != 0; +}); + +KT_DECL_TEST(ErrGetLastErrorAfterInvalidFile, []() -> bool { + auto file = IoOpenFile("/invalid/path/that/does/not/exist", nullptr); + + SInt32 error = ErrGetLastError(); + + if (file) IoCloseFile(file); + + return error != 0; +}); + +KT_DECL_TEST(ErrGetLastErrorAfterNullOp, []() -> bool { + auto ptr = MmCopyMemory(nullptr, nullptr, 10); + + SInt32 error = ErrGetLastError(); + + return error != 0; +}); + +KT_DECL_TEST(ErrGetLastErrorMultipleCalls, []() -> bool { + SInt32 error1 = ErrGetLastError(); + SInt32 error2 = ErrGetLastError(); + + return error1 == error2; +}); + +/// \brief Run error tests. +IMPORT_C SInt32 KT_TEST_MAIN() { + KT_RUN_TEST(ErrGetLastErrorInitial); + KT_RUN_TEST(ErrGetLastErrorAfterSuccess); + KT_RUN_TEST(ErrGetLastErrorAfterFailure); + KT_RUN_TEST(ErrGetLastErrorAfterInvalidFile); + KT_RUN_TEST(ErrGetLastErrorAfterNullOp); + KT_RUN_TEST(ErrGetLastErrorMultipleCalls); + + return KT_TEST_SUCCESS; +} |
