//===- subzero/crosstest/test_global_main.cpp - Driver for tests ----------===// // // The Subzero Code Generator // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // Driver for crosstesting global variable access operations. // //===----------------------------------------------------------------------===// /* crosstest.py --test=test_global.cpp \ --driver=test_global_main.cpp --prefix=Subzero_ --output=test_global */ #include <stdint.h> #include <cstdlib> #include <iostream> #include "test_global.h" namespace Subzero_ { #include "test_global.h" } int ExternName1 = 36363; float ExternName2 = 357.05e-10; char ExternName3[] = {'a', 'b', 'c'}; struct Data { int a; float b; double d; }; struct Data SimpleData = {-111, 2.69, 55.19}; struct Data *ExternName4 = &SimpleData; double ExternName5 = 3.44e26; int main(int argc, char **argv) { // Prevent pnacl-opt from deleting "unused" globals. if (argc < 0) { std::cout << &ExternName1 << &ExternName2 << &ExternName3 << &SimpleData << &ExternName4 << ExternName5; } size_t TotalTests = 0; size_t Passes = 0; size_t Failures = 0; const uint8_t *SzArray, *LlcArray; size_t SzArrayLen, LlcArrayLen; size_t NumArrays = getNumArrays(); for (size_t i = 0; i < NumArrays; ++i) { LlcArrayLen = -1; SzArrayLen = -2; LlcArray = getArray(i, LlcArrayLen); SzArray = Subzero_::getArray(i, SzArrayLen); ++TotalTests; if (LlcArrayLen == SzArrayLen) { ++Passes; } else { std::cout << i << ":LlcArrayLen=" << LlcArrayLen << ", SzArrayLen=" << SzArrayLen << "\n"; ++Failures; } for (size_t i = 0; i < LlcArrayLen; ++i) { ++TotalTests; if (LlcArray[i] == SzArray[i]) { ++Passes; } else { ++Failures; std::cout << i << ":LlcArray[" << i << "] = " << (int)LlcArray[i] << ", SzArray[" << i << "] = " << (int)SzArray[i] << "\n"; } } } std::cout << "TotalTests=" << TotalTests << " Passes=" << Passes << " Failures=" << Failures << "\n"; return Failures; }