xref: /llvm-project/compiler-rt/lib/sanitizer_common/tests/sanitizer_nolibc_test.cpp (revision d6d569fc06361cb2324abf5f36192063ce0b4289)
1*d6d569fcSNico Weber //===-- sanitizer_nolibc_test.cpp -----------------------------------------===//
2*d6d569fcSNico Weber //
3*d6d569fcSNico Weber // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*d6d569fcSNico Weber // See https://llvm.org/LICENSE.txt for license information.
5*d6d569fcSNico Weber // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*d6d569fcSNico Weber //
7*d6d569fcSNico Weber //===----------------------------------------------------------------------===//
8*d6d569fcSNico Weber //
9*d6d569fcSNico Weber // This file is a part of ThreadSanitizer/AddressSanitizer runtime.
10*d6d569fcSNico Weber // Tests for libc independence of sanitizer_common.
11*d6d569fcSNico Weber //
12*d6d569fcSNico Weber //===----------------------------------------------------------------------===//
13*d6d569fcSNico Weber 
14*d6d569fcSNico Weber #include "sanitizer_common/sanitizer_platform.h"
15*d6d569fcSNico Weber 
16*d6d569fcSNico Weber #include "gtest/gtest.h"
17*d6d569fcSNico Weber 
18*d6d569fcSNico Weber #include <stdlib.h>
19*d6d569fcSNico Weber 
20*d6d569fcSNico Weber extern const char *argv0;
21*d6d569fcSNico Weber 
22*d6d569fcSNico Weber #if SANITIZER_LINUX && defined(__x86_64__)
TEST(SanitizerCommon,NolibcMain)23*d6d569fcSNico Weber TEST(SanitizerCommon, NolibcMain) {
24*d6d569fcSNico Weber   std::string NolibcTestPath = argv0;
25*d6d569fcSNico Weber   NolibcTestPath += "-Nolibc";
26*d6d569fcSNico Weber   int status = system(NolibcTestPath.c_str());
27*d6d569fcSNico Weber   EXPECT_EQ(true, WIFEXITED(status));
28*d6d569fcSNico Weber   EXPECT_EQ(0, WEXITSTATUS(status));
29*d6d569fcSNico Weber }
30*d6d569fcSNico Weber #endif
31