//  filesystem sample_test.cpp  ----------------------------------------------//

//  Copyright Beman Dawes 2012

//  Distributed under the Boost Software License, Version 1.0.
//  See http://www.boost.org/LICENSE_1_0.txt

//  --------------------------------------------------------------------------//
//
//  This program provides a template for bug reporting test cases.
//
//  --------------------------------------------------------------------------//

#include <boost/config/warning_disable.hpp>
#include <boost/filesystem.hpp>
#include <boost/core/lightweight_test.hpp>
#include <iostream>
#include <string>
#include <cstring>
#ifndef BOOST_LIGHTWEIGHT_MAIN
#  include <boost/test/prg_exec_monitor.hpp>
#else
#  include <boost/detail/lightweight_main.hpp>
#endif

namespace fs = boost::filesystem;
using fs::path;
using std::cout;
using std::endl;
using std::string;
using std::wstring;

namespace
{
  bool cleanup = true;
}

//  cpp_main  ----------------------------------------------------------------//

int cpp_main(int argc, char* argv[])
{
  if (argc > 1 && std::strcmp(argv[1], "--no-cleanup") == 0)
    cleanup = false;

  //  Test cases go after this block of comments
  //    Use test case macros from boost/core/lightweight_test.hpp:
  //
  //    BOOST_TEST(predicate);  // test passes if predicate evaluates to true
  //    BOOST_TEST_EQ(x, y);    // test passes if x == y
  //    BOOST_TEST_NE(x, y);    // test passes if x != y
  //    BOOST_ERROR(msg);       // test fails, outputs msg
  //    Examples:
  //      BOOST_TEST(path("f00").size() == 3);   // test passes
  //      BOOST_TEST_EQ(path("f00").size(), 3);  // test passes
  //      BOOST_MSG("Oops!");  // test fails, outputs "Oops!"

  if (cleanup)
  {
    // Remove any test files or directories here
  }

  return ::boost::report_errors();
}
