#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
int r;
void *script;
size_t len;
- char *s, *test_file;
+ char *s, *test_file, *srcdir;
FILE *fp;
if (argc > 2) {
free(s);
script = razor_file_get_contents(test_file, &len);
+ if (!script) {
+ srcdir = getenv("srcdir");
+ if (srcdir && errno == ENOENT && *test_file != '/') {
+ s = malloc(strlen(srcdir) + strlen(test_file) + 2);
+ strcpy(s, srcdir);
+ strcat(s, "/");
+ strcat(s, test_file);
+ script = razor_file_get_contents(s, &len);
+ if (!script) {
+ perror(s);
+ exit(1);
+ }
+ free(s);
+ } else {
+ perror(test_file);
+ exit(1);
+ }
+ }
r = run_lua_script(root, test_file, script, len, -1);
razor_file_free_contents(script, len);