1*7fdb50c8SSiva Chandra Reddy //===-- Loader test to check args to main ---------------------------------===//
2*7fdb50c8SSiva Chandra Reddy //
3*7fdb50c8SSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*7fdb50c8SSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information.
5*7fdb50c8SSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*7fdb50c8SSiva Chandra Reddy //
7*7fdb50c8SSiva Chandra Reddy //===----------------------------------------------------------------------===//
8*7fdb50c8SSiva Chandra Reddy 
9*7fdb50c8SSiva Chandra Reddy #include "utils/IntegrationTest/test.h"
10*7fdb50c8SSiva Chandra Reddy 
my_streq(const char * lhs,const char * rhs)11*7fdb50c8SSiva Chandra Reddy static bool my_streq(const char *lhs, const char *rhs) {
12*7fdb50c8SSiva Chandra Reddy   const char *l, *r;
13*7fdb50c8SSiva Chandra Reddy   for (l = lhs, r = rhs; *l != '\0' && *r != '\0'; ++l, ++r)
14*7fdb50c8SSiva Chandra Reddy     if (*l != *r)
15*7fdb50c8SSiva Chandra Reddy       return false;
16*7fdb50c8SSiva Chandra Reddy 
17*7fdb50c8SSiva Chandra Reddy   return *l == '\0' && *r == '\0';
18*7fdb50c8SSiva Chandra Reddy }
19*7fdb50c8SSiva Chandra Reddy 
main(int argc,char ** argv,char ** envp)20*7fdb50c8SSiva Chandra Reddy int main(int argc, char **argv, char **envp) {
21*7fdb50c8SSiva Chandra Reddy   ASSERT_TRUE(argc == 4);
22*7fdb50c8SSiva Chandra Reddy   ASSERT_TRUE(my_streq(argv[1], "1"));
23*7fdb50c8SSiva Chandra Reddy   ASSERT_TRUE(my_streq(argv[2], "2"));
24*7fdb50c8SSiva Chandra Reddy   ASSERT_TRUE(my_streq(argv[3], "3"));
25*7fdb50c8SSiva Chandra Reddy 
26*7fdb50c8SSiva Chandra Reddy   bool found_france = false;
27*7fdb50c8SSiva Chandra Reddy   bool found_germany = false;
28*7fdb50c8SSiva Chandra Reddy   for (; *envp != nullptr; ++envp) {
29*7fdb50c8SSiva Chandra Reddy     if (my_streq(*envp, "FRANCE=Paris"))
30*7fdb50c8SSiva Chandra Reddy       found_france = true;
31*7fdb50c8SSiva Chandra Reddy     if (my_streq(*envp, "GERMANY=Berlin"))
32*7fdb50c8SSiva Chandra Reddy       found_germany = true;
33*7fdb50c8SSiva Chandra Reddy   }
34*7fdb50c8SSiva Chandra Reddy 
35*7fdb50c8SSiva Chandra Reddy   ASSERT_TRUE(found_france && found_germany);
36*7fdb50c8SSiva Chandra Reddy 
37*7fdb50c8SSiva Chandra Reddy   return 0;
38*7fdb50c8SSiva Chandra Reddy }
39