1/* 2 * Copyright 2008, Haiku. 3 * Distributed under the terms of the MIT license. 4 * 5 * Authors: 6 * Michael Pfeiffer <laplace@users.sourceforge.net> 7 */ 8 9#include <stdio.h> 10#include <stdlib.h> 11#include <string.h> 12#include <List.h> 13 14void TestScanner(); 15void TestParser(); 16void TestPPDParser(bool all, bool verbose = true); 17void TestExtractUI(); 18 19const char* gPPDFile = "aptollw1.ppd"; 20 21static BList gArgs; 22 23bool enabled(const char* name, const char* arg) 24{ 25 gArgs.AddItem((void*)name); 26 if (arg == NULL) return false; 27 if (strcmp(arg, "all") == 0) return true; 28 return strcmp(arg, name) == 0; 29} 30 31void printArgs(const char* programName) 32{ 33 fprintf(stderr, "%s: argument\n", programName); 34 fprintf(stderr, "Argument is missing. The available arguments are:\n"); 35 fprintf(stderr, " all\n"); 36 for (int i = 0; i < gArgs.CountItems(); i ++) { 37 fprintf(stderr, " %s\n", (const char*)gArgs.ItemAt(i)); 38 } 39} 40 41int main(int argc, char* argv[]) 42{ 43 const char* arg = argc >= 2 ? argv[1] : NULL; 44 45 if (argc >= 3) { 46 gPPDFile = argv[2]; 47 } 48 49 if (enabled("scanner", arg)) { 50 TestScanner(); 51 } 52 if (enabled("parser", arg)) { 53 TestParser(); 54 } 55 if (enabled("ppd", arg)) { 56 TestPPDParser(true); 57 } 58 if (enabled("header", arg)) { 59 TestPPDParser(false); 60 } 61 if (enabled("ui", arg)) { 62 TestExtractUI(); 63 } 64 if (enabled("ppd-timing", arg)) { 65 TestPPDParser(true, false); 66 } 67 if (enabled("header-timing", arg)) { 68 TestPPDParser(false, false); 69 } 70 71 if (arg == NULL) { 72 printArgs(argv[0]); 73 } 74} 75