//////////////////////////////////////////////////
  // Primary test method
  boolean doOneTest(ClientTest testcase) throws Exception {
    boolean pass = true;
    System.out.println("Testcase: " + testcase.testinputpath);
    String url = testcase.makeurl();
    NetcdfDataset ncfile = null;
    try {
      ncfile = openDataset(url);
    } catch (Exception e) {
      System.err.println(testcase.xfail ? "XFail" : "Fail");
      e.printStackTrace();
      return testcase.xfail;
    }

    String metadata = null;
    String data = null;

    metadata = ncdumpmetadata(ncfile);
    if (prop_visual) {
      visual(testcase.title + ".dmr", metadata);
    }
    data = ncdumpdata(ncfile);
    if (prop_visual) visual(testcase.title + ".dap", data);

    String testoutput = data;

    String baselinefile = testcase.baselinepath + "." + EXTENSION;

    if (prop_baseline) writefile(baselinefile, testoutput);

    if (prop_diff) { // compare with baseline
      // Read the baseline file(s)
      String baselinecontent = readfile(baselinefile);
      System.out.println("Comparison: vs " + baselinefile);
      pass = pass && compare(baselinecontent, testoutput);
      System.out.println(pass ? "Pass" : "Fail");
    }
    return pass;
  }