/* * Copyright 2008, Haiku. * Distributed under the terms of the MIT license. * * Authors: * Michael Pfeiffer */ #include #include #include #include void TestScanner(); void TestParser(); void TestPPDParser(bool all, bool verbose = true); void TestExtractUI(); const char* gPPDFile = "aptollw1.ppd"; static BList gArgs; bool enabled(const char* name, const char* arg) { gArgs.AddItem((void*)name); if (arg == NULL) return false; if (strcmp(arg, "all") == 0) return true; return strcmp(arg, name) == 0; } void printArgs(const char* programName) { fprintf(stderr, "%s: argument\n", programName); fprintf(stderr, "Argument is missing. The available arguments are:\n"); fprintf(stderr, " all\n"); for (int i = 0; i < gArgs.CountItems(); i ++) { fprintf(stderr, " %s\n", (const char*)gArgs.ItemAt(i)); } } int main(int argc, char* argv[]) { const char* arg = argc >= 2 ? argv[1] : NULL; if (argc >= 3) { gPPDFile = argv[2]; } if (enabled("scanner", arg)) { TestScanner(); } if (enabled("parser", arg)) { TestParser(); } if (enabled("ppd", arg)) { TestPPDParser(true); } if (enabled("header", arg)) { TestPPDParser(false); } if (enabled("ui", arg)) { TestExtractUI(); } if (enabled("ppd-timing", arg)) { TestPPDParser(true, false); } if (enabled("header-timing", arg)) { TestPPDParser(false, false); } if (arg == NULL) { printArgs(argv[0]); } }