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 #include <sys/resource.h>
7 #include "util/test.h"
8 
9 DEFINE_string(test_tmpdir, "/var/tmp", "temp directory");
10 
11 struct Test {
12   void (*fn)(void);
13   const char *name;
14 };
15 
16 static Test tests[10000];
17 static int ntests;
18 
RegisterTest(void (* fn)(void),const char * name)19 void RegisterTest(void (*fn)(void), const char *name) {
20   tests[ntests].fn = fn;
21   tests[ntests++].name = name;
22 }
23 
24 namespace re2 {
VirtualProcessSize()25 int64 VirtualProcessSize() {
26   struct rusage ru;
27   getrusage(RUSAGE_SELF, &ru);
28   return (int64)ru.ru_maxrss*1024;
29 }
30 }  // namespace re2
31 
main(int argc,char ** argv)32 int main(int argc, char **argv) {
33   for (int i = 0; i < ntests; i++) {
34     printf("%s\n", tests[i].name);
35     tests[i].fn();
36   }
37   printf("PASS\n");
38   return 0;
39 }
40