pike.git / src / testsuite.in

version» Context lines:

pike.git/src/testsuite.in:14369:    for (int i = 0; i < level; i++) ret = (ret && ret->ctx);       return ret || this;    }    };       return A(0)->get(UNDEFINED);   ]])       + dnl Verify some coding practices. + test_tests([[ +  void report_test(array res, int failed, string fail_msg, mixed ... extra) +  { +  if (!failed) { +  res[0]++; +  return; +  } +  res[1]++; +  log_msg(fail_msg, @extra); +  } +  +  array(int) test_dir(string dir) +  { +  log_status("Testing directory %s/.\n", dir); +  +  string configure_script = Stdio.read_bytes(combine_path(dir, "configure.in")); +  array(int) res = ({ 0, 0 }); +  +  if (!configure_script) return res; +  +  // Makefile.in should exist. +  string makefile_in = Stdio.read_bytes(combine_path(dir, "Makefile.in")); +  report_test(res, !makefile_in, "Makefile.in missing in directory %O.\n", dir); +  +  if (sscanf(configure_script, "%*sAC_CONFIG_HEADER(%s)", string config_h)) { +  // acconfig.h should exist. +  report_test(res, !Stdio.is_file(combine_path(dir, "acconfig.h")), +  "acconfig.h missing in directory %s.\n", dir); +  // config_h + ".in" should exist. +  report_test(res, !Stdio.is_file(combine_path(dir, config_h + ".in")), +  "%s missing in directory %s.\n", config_h + ".in", dir); +  // The Makefile should regenerate config_h et al. +  report_test(res, +  !has_value(makefile_in||"", "CONFIG_HEADERS=@CONFIG_HEADERS@"), +  "Makefile.in in directory %s is missing CONFIG_HEADERS.", dir); +  } +  return res; +  } +  +  array(int) recur_test_dir(string dir) +  { +  array(int) res = test_dir(dir); +  +  foreach(get_dir(dir), string f) { +  string path = combine_path(dir, f); +  if (Stdio.is_dir(path)) { +  array(int) delta = recur_test_dir(path); +  res[0] += delta[0]; +  res[1] += delta[1]; +  } +  } +  return res; +  } +  +  array(int) a() +  { +  return recur_test_dir("]]SRCDIR[["); +  } + ]]) +    END_MARKER