Don't bother supporting a filename
This commit is contained in:
@@ -8,15 +8,6 @@
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
|
||||
namespace aocpp {
|
||||
|
||||
/// @brief Return the selected input stream or run the test suite
|
||||
/// @param argc Number of arguments
|
||||
/// @param argv Command line arguments
|
||||
auto Startup(int argc, char ** argv) -> std::unique_ptr<std::istream, void(*)(std::istream*)>;
|
||||
|
||||
}
|
||||
|
||||
auto Main(std::istream & in, std::ostream & out) -> void;
|
||||
|
||||
#endif
|
||||
|
@@ -10,30 +10,14 @@
|
||||
#define DOCTEST_CONFIG_IMPLEMENT
|
||||
#include <doctest.h>
|
||||
|
||||
namespace aocpp {
|
||||
|
||||
auto Startup(int argc, char ** argv) -> std::unique_ptr<std::istream, void(*)(std::istream*)> {
|
||||
if (std::getenv("DOCTEST")) {
|
||||
exit(doctest::Context{argc, argv}.run());
|
||||
}
|
||||
|
||||
switch (argc) {
|
||||
case 2:
|
||||
return {new std::ifstream{argv[1]}, [](std::istream* p) { delete p; }};
|
||||
case 1:
|
||||
return {&std::cin, [](std::istream*){}};
|
||||
default:
|
||||
std::cerr << "bad arguments\n";
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
auto main(int argc, char ** argv) -> int
|
||||
{
|
||||
if (std::getenv("DOCTEST")) {
|
||||
return doctest::Context{argc, argv}.run();
|
||||
}
|
||||
|
||||
try {
|
||||
Main(*aocpp::Startup(argc, argv), std::cout);
|
||||
Main(std::cin, std::cout);
|
||||
} catch (std::exception const& e) {
|
||||
std::cerr << "Program failed: " << e.what() << std::endl;
|
||||
return 1;
|
||||
|
Reference in New Issue
Block a user