void test_incompatible_args() { const char* a1[] = {"osm2pgsql", "-a", "-c", "--slim", "tests/liechtenstein-2013-08-03.osm.pbf"}; parse_fail(len(a1), a1, "options can not be used at the same time"); const char* a2[] = {"osm2pgsql", "--drop", "tests/liechtenstein-2013-08-03.osm.pbf"}; parse_fail(len(a2), a2, "drop only makes sense with"); const char* a3[] = {"osm2pgsql", "-j", "-k", "tests/liechtenstein-2013-08-03.osm.pbf"}; parse_fail(len(a3), a3, "you can not specify both"); }
int main(int argc, const char * argv[]) { Parser parser; parser.expr(); if (parse_fail()) std::cout<<" Parse Fail"<<std::endl; else std::cout<<" END"<<std::endl; return 0; }
void expr() { term(); while(true){ if ( '+' == lookahead) { match('+'); term(); if (parse_fail()) break; else std::cout<<'+'; }else if('-' == lookahead){ match('-'); term(); if (parse_fail()) break; else std::cout<<'-'; } else return; } }
int main(void) { /* From the spec */ parse_success("amqp://*****:*****@host:10000/vhost", "user", "pass", "host", 10000, "vhost"); parse_success("amqps://*****:*****@host:10000/vhost", "user", "pass", "host", 10000, "vhost"); parse_success("amqp://user%61:%61pass@ho%61st:10000/v%2fhost", "usera", "apass", "hoast", 10000, "v/host"); parse_success("amqps://user%61:%61pass@ho%61st:10000/v%2fhost", "usera", "apass", "hoast", 10000, "v/host"); parse_success("amqp://", "guest", "guest", "localhost", 5672, "/"); parse_success("amqps://", "guest", "guest", "localhost", 5671, "/"); parse_success("amqp://:@/", "", "", "localhost", 5672, ""); parse_success("amqps://:@/", "", "", "localhost", 5671, ""); parse_success("amqp://user@", "user", "guest", "localhost", 5672, "/"); parse_success("amqps://user@", "user", "guest", "localhost", 5671, "/"); parse_success("amqp://*****:*****@", "user", "pass", "localhost", 5672, "/"); parse_success("amqps://*****:*****@", "user", "pass", "localhost", 5671, "/"); parse_success("amqp://host", "guest", "guest", "host", 5672, "/"); parse_success("amqps://host", "guest", "guest", "host", 5671, "/"); parse_success("amqp://:10000", "guest", "guest", "localhost", 10000, "/"); parse_success("amqps://:10000", "guest", "guest", "localhost", 10000, "/"); parse_success("amqp:///vhost", "guest", "guest", "localhost", 5672, "vhost"); parse_success("amqps:///vhost", "guest", "guest", "localhost", 5671, "vhost"); parse_success("amqp://host/", "guest", "guest", "host", 5672, ""); parse_success("amqps://host/", "guest", "guest", "host", 5671, ""); parse_success("amqp://host/%2f", "guest", "guest", "host", 5672, "/"); parse_success("amqps://host/%2f", "guest", "guest", "host", 5671, "/"); parse_success("amqp://[::1]", "guest", "guest", "::1", 5672, "/"); parse_success("amqps://[::1]", "guest", "guest", "::1", 5671, "/"); /* Various other success cases */ parse_success("amqp://*****:*****@host", "user", "pass", "host", 5672, "/"); parse_success("amqps://*****:*****@host", "user", "pass", "host", 5671, "/"); parse_success("amqp://*****:*****@host:100", "user", "pass", "host", 100, "/"); parse_success("amqps://*****:*****@host:100", "user", "pass", "host", 100, "/"); parse_success("amqp://*****:*****@:100", "user", "pass", "localhost", 100, "/"); parse_success("amqps://*****:*****@:100", "user", "pass", "localhost", 100, "/"); parse_success("amqp://*****:*****@[::1]", "user", "pass", "::1", 5672, "/"); parse_success("amqps://*****:*****@[::1]", "user", "pass", "::1", 5671, "/"); parse_success("amqp://*****:*****@[::1]:100", "user", "pass", "::1", 100, "/"); parse_success("amqps://*****:*****@[::1]:100", "user", "pass", "::1", 100, "/"); /* Various failure cases */ parse_fail("http://www.rabbitmq.com"); parse_fail("amqp://foo:bar:baz"); parse_fail("amqps://foo:bar:baz"); parse_fail("amqp://foo[::1]"); parse_fail("amqps://foo[::1]"); parse_fail("amqp://foo[::1]"); parse_fail("amqps://foo[::1]"); parse_fail("amqp://foo:[::1]"); parse_fail("amqps://foo:[::1]"); parse_fail("amqp://[::1]foo"); parse_fail("amqps://[::1]foo"); parse_fail("amqp://foo:1000xyz"); parse_fail("amqps://foo:1000xyz"); parse_fail("amqp://foo:1000000"); parse_fail("amqps://foo:1000000"); parse_fail("amqp://foo/bar/baz"); parse_fail("amqps://foo/bar/baz"); parse_fail("amqp://foo%1"); parse_fail("amqps://foo%1"); parse_fail("amqp://foo%1x"); parse_fail("amqps://foo%1x"); parse_fail("amqp://foo%xy"); parse_fail("amqps://foo%xy"); return 0; }
void test_insufficient_args() { const char* argv[] = {"osm2pgsql", "-a", "-c", "--slim"}; parse_fail(len(argv), argv, "usage error"); }