1*ccdc9c3eSSadaf Ebrahimi // Copyright 2009 The RE2 Authors. All Rights Reserved. 2*ccdc9c3eSSadaf Ebrahimi // Use of this source code is governed by a BSD-style 3*ccdc9c3eSSadaf Ebrahimi // license that can be found in the LICENSE file. 4*ccdc9c3eSSadaf Ebrahimi 5*ccdc9c3eSSadaf Ebrahimi #include <stdio.h> 6*ccdc9c3eSSadaf Ebrahimi 7*ccdc9c3eSSadaf Ebrahimi #include "util/test.h" 8*ccdc9c3eSSadaf Ebrahimi 9*ccdc9c3eSSadaf Ebrahimi DEFINE_string(test_tmpdir, "/var/tmp", "temp directory"); 10*ccdc9c3eSSadaf Ebrahimi 11*ccdc9c3eSSadaf Ebrahimi struct Test { 12*ccdc9c3eSSadaf Ebrahimi void (*fn)(void); 13*ccdc9c3eSSadaf Ebrahimi const char *name; 14*ccdc9c3eSSadaf Ebrahimi }; 15*ccdc9c3eSSadaf Ebrahimi 16*ccdc9c3eSSadaf Ebrahimi static Test tests[10000]; 17*ccdc9c3eSSadaf Ebrahimi static int ntests; 18*ccdc9c3eSSadaf Ebrahimi RegisterTest(void (* fn)(void),const char * name)19*ccdc9c3eSSadaf Ebrahimivoid RegisterTest(void (*fn)(void), const char *name) { 20*ccdc9c3eSSadaf Ebrahimi tests[ntests].fn = fn; 21*ccdc9c3eSSadaf Ebrahimi tests[ntests++].name = name; 22*ccdc9c3eSSadaf Ebrahimi } 23*ccdc9c3eSSadaf Ebrahimi main(int argc,char ** argv)24*ccdc9c3eSSadaf Ebrahimiint main(int argc, char** argv) { 25*ccdc9c3eSSadaf Ebrahimi for (int i = 0; i < ntests; i++) { 26*ccdc9c3eSSadaf Ebrahimi printf("%s\n", tests[i].name); 27*ccdc9c3eSSadaf Ebrahimi tests[i].fn(); 28*ccdc9c3eSSadaf Ebrahimi } 29*ccdc9c3eSSadaf Ebrahimi printf("PASS\n"); 30*ccdc9c3eSSadaf Ebrahimi return 0; 31*ccdc9c3eSSadaf Ebrahimi } 32