Home | History | Annotate | Download | only in util
      1 // Copyright 2009 The RE2 Authors.  All Rights Reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 #include <stdio.h>
      6 #ifndef WIN32
      7 #include <sys/resource.h>
      8 #endif
      9 #include "util/test.h"
     10 
     11 DEFINE_string(test_tmpdir, "/var/tmp", "temp directory");
     12 
     13 struct Test {
     14   void (*fn)(void);
     15   const char *name;
     16 };
     17 
     18 static Test tests[10000];
     19 static int ntests;
     20 
     21 void RegisterTest(void (*fn)(void), const char *name) {
     22   tests[ntests].fn = fn;
     23   tests[ntests++].name = name;
     24 }
     25 
     26 namespace re2 {
     27 int64 VirtualProcessSize() {
     28 #ifndef WIN32
     29   struct rusage ru;
     30   getrusage(RUSAGE_SELF, &ru);
     31   return (int64)ru.ru_maxrss*1024;
     32 #else
     33   return 0;
     34 #endif
     35 }
     36 }  // namespace re2
     37 
     38 int main(int argc, char **argv) {
     39   for (int i = 0; i < ntests; i++) {
     40     printf("%s\n", tests[i].name);
     41     tests[i].fn();
     42   }
     43   printf("PASS\n");
     44   return 0;
     45 }
     46