All existing loader tests are switched to an integration test added with the new rule. Also, the getenv test is now enabled as an integration test. All loader tests have been moved to test/integration. Also, the simple checker library for the previous loader tests has been moved to a separate directory of its own. A follow up change will perform more cleanup of the loader CMake rules to eliminate now redundent options. Reviewed By: lntue, michaelrj Differential Revision: https://reviews.llvm.org/D122266
39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
//===-- Loader test to check args to main ---------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "utils/IntegrationTest/test.h"
|
|
|
|
static bool my_streq(const char *lhs, const char *rhs) {
|
|
const char *l, *r;
|
|
for (l = lhs, r = rhs; *l != '\0' && *r != '\0'; ++l, ++r)
|
|
if (*l != *r)
|
|
return false;
|
|
|
|
return *l == '\0' && *r == '\0';
|
|
}
|
|
|
|
int main(int argc, char **argv, char **envp) {
|
|
ASSERT_TRUE(argc == 4);
|
|
ASSERT_TRUE(my_streq(argv[1], "1"));
|
|
ASSERT_TRUE(my_streq(argv[2], "2"));
|
|
ASSERT_TRUE(my_streq(argv[3], "3"));
|
|
|
|
bool found_france = false;
|
|
bool found_germany = false;
|
|
for (; *envp != nullptr; ++envp) {
|
|
if (my_streq(*envp, "FRANCE=Paris"))
|
|
found_france = true;
|
|
if (my_streq(*envp, "GERMANY=Berlin"))
|
|
found_germany = true;
|
|
}
|
|
|
|
ASSERT_TRUE(found_france && found_germany);
|
|
|
|
return 0;
|
|
}
|