From fd06fa49e4e3f4811df4ee566a0ea41832eb0cca Mon Sep 17 00:00:00 2001 From: Syoyo Fujita Date: Wed, 25 Jul 2018 21:42:23 +0900 Subject: [PATCH] Add unit test for parsing 'l'. --- models/line-prim.obj | 16 ++++++++++++++++ tests/tester.cc | 17 +++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 models/line-prim.obj diff --git a/models/line-prim.obj b/models/line-prim.obj new file mode 100644 index 0000000..5f8fb0c --- /dev/null +++ b/models/line-prim.obj @@ -0,0 +1,16 @@ +mtllib cube.mtl + +v 0.000000 2.000000 2.000000 +v 0.000000 0.000000 2.000000 +v 2.000000 0.000000 2.000000 +v 2.000000 2.000000 2.000000 +v 0.000000 2.000000 0.000000 +v 0.000000 0.000000 0.000000 +v 2.000000 0.000000 0.000000 +v 2.000000 2.000000 0.000000 +# 8 vertices + +g g0 +usemtl white +l 1 2 3 4 +l 5 6 7 diff --git a/tests/tester.cc b/tests/tester.cc index 638507d..0a26d2e 100644 --- a/tests/tester.cc +++ b/tests/tester.cc @@ -790,6 +790,23 @@ TEST_CASE("Empty mtl basedir", "[Issue177]") { REQUIRE(true == ret); } +TEST_CASE("line-primitive", "[line]") { + tinyobj::attrib_t attrib; + std::vector shapes; + std::vector materials; + + std::string err; + bool ret = tinyobj::LoadObj(&attrib, &shapes, &materials, &err, "../models/line-prim.obj", gMtlBasePath); + + if (!err.empty()) { + std::cerr << "[line] " << err << std::endl; + } + + REQUIRE(true == ret); + REQUIRE(1 == shapes.size()); + REQUIRE(6 == shapes[0].path.indices.size()); +} + // Fuzzer test. // Just check if it does not crash. // Disable by default since Windows filesystem can't create filename of afl testdata