Add EXPECT_STREQ and ASSERT_STREQ macros to IntegrationTest/test.h using cpp::string_view. Note that, unlike the unit test macro (but like googletest), this version treats NULL as distinct from "". The inconsistency is unfortunate, but I think it's important as the code is used for testing functions like getenv(), where "" and NULL have very different meanings. We should probably follow this up with a change to make the unit test macro behave the same way. Update integration tests to use the new macros instead of handrolled string equality functions (my_streq), strcmp, inline_strcmp, or string_view wrappers.
29 lines
928 B
C++
29 lines
928 B
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 "test/IntegrationTest/test.h"
|
|
|
|
TEST_MAIN(int argc, char **argv, char **envp) {
|
|
ASSERT_TRUE(argc == 4);
|
|
ASSERT_STREQ(argv[1], "1");
|
|
ASSERT_STREQ(argv[2], "2");
|
|
ASSERT_STREQ(argv[3], "3");
|
|
|
|
bool found_france = false;
|
|
bool found_germany = false;
|
|
for (; *envp != nullptr; ++envp) {
|
|
if (LIBC_NAMESPACE::cpp::string_view(*envp) == "FRANCE=Paris")
|
|
found_france = true;
|
|
if (LIBC_NAMESPACE::cpp::string_view(*envp) == "GERMANY=Berlin")
|
|
found_germany = true;
|
|
}
|
|
|
|
ASSERT_TRUE(found_france && found_germany);
|
|
|
|
return 0;
|
|
}
|