Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9483748a authored by Casey Dahlin's avatar Casey Dahlin Committed by Gerrit Code Review
Browse files

Merge "Delete outdated options tests"

parents 02bc5488 d6b6b80c
Loading
Loading
Loading
Loading

tools/aidl/options_test.cpp

deleted100644 → 0
+0 −292
Original line number Diff line number Diff line
#include <iostream>
#include "options.h"

const bool VERBOSE = false;

using std::string;
using std::vector;

struct Answer {
    const char* argv[8];
    int result;
    const char* systemSearchPath[8];
    const char* localSearchPath[8];
    const char* inputFileName;
    language_t nativeLanguage;
    const char* outputH;
    const char* outputCPP;
    const char* outputJava;
};

bool
match_arrays(const char* const*expected, const vector<string> &got)
{
    int count = 0;
    while (expected[count] != NULL) {
        count++;
    }
    if (got.size() != count) {
        return false;
    }
    for (int i=0; i<count; i++) {
        if (got[i] != expected[i]) {
            return false;
        }
    }
    return true;
}

void
print_array(const char* prefix, const char* const*expected)
{
    while (*expected) {
        cout << prefix << *expected << endl;
        expected++;
    }
}

void
print_array(const char* prefix, const vector<string> &got)
{
    size_t count = got.size();
    for (size_t i=0; i<count; i++) {
        cout << prefix << got[i] << endl;
    }
}

static int
test(const Answer& answer)
{
    int argc = 0;
    while (answer.argv[argc]) {
        argc++;
    }

    int err = 0;

    Options options;
    int result = parse_options(argc, answer.argv, &options);

    // result
    if (((bool)result) != ((bool)answer.result)) {
        cout << "mismatch: result: got " << result << " expected " <<
            answer.result << endl;
        err = 1;
    }

    if (result != 0) {
        // if it failed, everything is invalid
        return err;
    }

    // systemSearchPath
    if (!match_arrays(answer.systemSearchPath, options.systemSearchPath)) {
        cout << "mismatch: systemSearchPath: got" << endl;
        print_array("        ", options.systemSearchPath);
        cout << "    expected" << endl;
        print_array("        ", answer.systemSearchPath);
        err = 1;
    }

    // localSearchPath
    if (!match_arrays(answer.localSearchPath, options.localSearchPath)) {
        cout << "mismatch: localSearchPath: got" << endl;
        print_array("        ", options.localSearchPath);
        cout << "    expected" << endl;
        print_array("        ", answer.localSearchPath);
        err = 1;
    }

    // inputFileName
    if (answer.inputFileName != options.inputFileName) {
        cout << "mismatch: inputFileName: got " << options.inputFileName
            << " expected " << answer.inputFileName << endl;
        err = 1;
    }

    // nativeLanguage
    if (answer.nativeLanguage != options.nativeLanguage) {
        cout << "mismatch: nativeLanguage: got " << options.nativeLanguage
            << " expected " << answer.nativeLanguage << endl;
        err = 1;
    }

    // outputH
    if (answer.outputH != options.outputH) {
        cout << "mismatch: outputH: got " << options.outputH
            << " expected " << answer.outputH << endl;
        err = 1;
    }

    // outputCPP
    if (answer.outputCPP != options.outputCPP) {
        cout << "mismatch: outputCPP: got " << options.outputCPP
            << " expected " << answer.outputCPP << endl;
        err = 1;
    }

    // outputJava
    if (answer.outputJava != options.outputJava) {
        cout << "mismatch: outputJava: got " << options.outputJava
            << " expected " << answer.outputJava << endl;
        err = 1;
    }

    return err;
}

const Answer g_tests[] = {

    {
        /* argv */              { "test", "-i/moof", "-I/blah", "-Ibleh", "-imoo", "inputFileName.aidl_cpp", NULL, NULL },
        /* result */            0,
        /* systemSearchPath */  { "/blah", "bleh", NULL, NULL, NULL, NULL, NULL, NULL },
        /* localSearchPath */   { "/moof", "moo", NULL, NULL, NULL, NULL, NULL, NULL },
        /* inputFileName */     "inputFileName.aidl_cpp",
        /* nativeLanguage */    CPP,
        /* outputH */           "",
        /* outputCPP */         "",
        /* outputJava */        ""
    },

    {
        /* argv */              { "test", "inputFileName.aidl_cpp", "-oh", "outputH", NULL, NULL, NULL, NULL },
        /* result */            0,
        /* systemSearchPath */  { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* localSearchPath */   { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* inputFileName */     "inputFileName.aidl_cpp",
        /* nativeLanguage */    CPP,
        /* outputH */           "outputH",
        /* outputCPP */         "",
        /* outputJava */        ""
    },

    {
        /* argv */              { "test", "inputFileName.aidl_cpp", "-ocpp", "outputCPP", NULL, NULL, NULL, NULL },
        /* result */            0,
        /* systemSearchPath */  { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* localSearchPath */   { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* inputFileName */     "inputFileName.aidl_cpp",
        /* nativeLanguage */    CPP,
        /* outputH */           "",
        /* outputCPP */         "outputCPP",
        /* outputJava */        ""
    },

    {
        /* argv */              { "test", "inputFileName.aidl_cpp", "-ojava", "outputJava", NULL, NULL, NULL, NULL },
        /* result */            0,
        /* systemSearchPath */  { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* localSearchPath */   { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* inputFileName */     "inputFileName.aidl_cpp",
        /* nativeLanguage */    CPP,
        /* outputH */           "",
        /* outputCPP */         "",
        /* outputJava */        "outputJava"
    },

    {
        /* argv */              { "test", "inputFileName.aidl_cpp", "-oh", "outputH", "-ocpp", "outputCPP", "-ojava", "outputJava" },
        /* result */            0,
        /* systemSearchPath */  { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* localSearchPath */   { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* inputFileName */     "inputFileName.aidl_cpp",
        /* nativeLanguage */    CPP,
        /* outputH */           "outputH",
        /* outputCPP */         "outputCPP",
        /* outputJava */        "outputJava"
    },

    {
        /* argv */              { "test", "inputFileName.aidl_cpp", "-oh", "outputH", "-oh", "outputH1", NULL, NULL },
        /* result */            1,
        /* systemSearchPath */  { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* localSearchPath */   { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* inputFileName */     "",
        /* nativeLanguage */    CPP,
        /* outputH */           "",
        /* outputCPP */         "",
        /* outputJava */        ""
    },

    {
        /* argv */              { "test", "inputFileName.aidl_cpp", "-ocpp", "outputCPP", "-ocpp", "outputCPP1", NULL, NULL },
        /* result */            1,
        /* systemSearchPath */  { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* localSearchPath */   { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* inputFileName */     "",
        /* nativeLanguage */    CPP,
        /* outputH */           "",
        /* outputCPP */         "",
        /* outputJava */        ""
    },

    {
        /* argv */              { "test", "inputFileName.aidl_cpp", "-ojava", "outputJava", "-ojava", "outputJava1", NULL, NULL },
        /* result */            1,
        /* systemSearchPath */  { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* localSearchPath */   { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },
        /* inputFileName */     "",
        /* nativeLanguage */    CPP,
        /* outputH */           "",
        /* outputCPP */         "",
        /* outputJava */        ""
    },

};

int
main(int argc, const char** argv)
{
    const int count = sizeof(g_tests)/sizeof(g_tests[0]);
    int matches[count];

    int result = 0;
    for (int i=0; i<count; i++) {
        if (VERBOSE) {
            cout << endl;
            cout << "---------------------------------------------" << endl;
            const char* const* p = g_tests[i].argv;
            while (*p) {
                cout << " " << *p;
                p++;
            }
            cout << endl;
            cout << "---------------------------------------------" << endl;
        }
        matches[i] = test(g_tests[i]);
        if (VERBOSE) {
            if (0 == matches[i]) {
                cout << "passed" << endl;
            } else {
                cout << "failed" << endl;
            }
            result |= matches[i];
        }
    }

    cout << endl;
    cout << "=============================================" << endl;
    cout << "options_test summary" << endl;
    cout << "=============================================" << endl;

    if (!result) {
        cout << "passed" << endl;
    } else {
        cout << "failed the following tests:" << endl;
        for (int i=0; i<count; i++) {
            if (matches[i]) {
                cout << "   ";
                const char* const* p = g_tests[i].argv;
                while (*p) {
                    cout << " " << *p;
                    p++;
                }
                cout << endl;
            }
        }
    }

    return result;
}