[Compact]
private class Fixture {
  public string? s;
}

private void setup (void* fix, void* user_data) {
  ((Fixture) fix).s = " there";
}

private void test (void* fix, void* user_data) {
  string s = (string) user_data + ((Fixture) fix).s;
  Test.message (s);
}

private void cleanup (void* fix, void* user_data) {
  ((Fixture) fix).s = null;
}

int main (string[] args) {
  Test.init (ref args);
  var m = "hello";
  Test.add_func ("/test1", () => { Test.message ("First Test"); });
  Test.add_data_func ("/test2", () => { Test.message (m); });
  var case = new TestCase ("testcase", sizeof (Fixture), m, setup, test, cleanup);
  var suite = TestSuite.get_root ();
  suite.add (case);
  return Test.run ();
}
