USD: ensure test does not depend on BLI_assert()

The test failure in T75491 only showed up in debug builds because
`BLI_assert()` is a no-op in release builds. This is now replaced by a
proper GTests call to `ADD_FAILURE()`, ensuring that the test fails
regardless of build mode.
This commit is contained in:
Sybren A. Stüvel
2020-04-09 12:14:51 +02:00
parent 80255e67e3
commit 17da3b5d82

View File

@@ -36,9 +36,11 @@ using namespace USD;
class TestHierarchyWriter : public AbstractHierarchyWriter { class TestHierarchyWriter : public AbstractHierarchyWriter {
public: public:
std::string writer_type;
created_writers &writers_map; created_writers &writers_map;
TestHierarchyWriter(created_writers &writers_map) : writers_map(writers_map) TestHierarchyWriter(const std::string &writer_type, created_writers &writers_map)
: writer_type(writer_type), writers_map(writers_map)
{ {
} }
@@ -47,7 +49,10 @@ class TestHierarchyWriter : public AbstractHierarchyWriter {
const char *id_name = context.object->id.name; const char *id_name = context.object->id.name;
created_writers::mapped_type &writers = writers_map[id_name]; created_writers::mapped_type &writers = writers_map[id_name];
BLI_assert(writers.find(context.export_path) == writers.end()); if (writers.find(context.export_path) != writers.end()) {
ADD_FAILURE() << "Unexpectedly found another " << writer_type << " writer for " << id_name
<< " to export to " << context.export_path;
}
writers.insert(context.export_path); writers.insert(context.export_path);
} }
}; };
@@ -81,19 +86,19 @@ class TestingHierarchyIterator : public AbstractHierarchyIterator {
protected: protected:
AbstractHierarchyWriter *create_transform_writer(const HierarchyContext *context) override AbstractHierarchyWriter *create_transform_writer(const HierarchyContext *context) override
{ {
return new TestHierarchyWriter(transform_writers); return new TestHierarchyWriter("transform", transform_writers);
} }
AbstractHierarchyWriter *create_data_writer(const HierarchyContext *context) override AbstractHierarchyWriter *create_data_writer(const HierarchyContext *context) override
{ {
return new TestHierarchyWriter(data_writers); return new TestHierarchyWriter("data", data_writers);
} }
AbstractHierarchyWriter *create_hair_writer(const HierarchyContext *context) override AbstractHierarchyWriter *create_hair_writer(const HierarchyContext *context) override
{ {
return new TestHierarchyWriter(hair_writers); return new TestHierarchyWriter("hair", hair_writers);
} }
AbstractHierarchyWriter *create_particle_writer(const HierarchyContext *context) override AbstractHierarchyWriter *create_particle_writer(const HierarchyContext *context) override
{ {
return new TestHierarchyWriter(particle_writers); return new TestHierarchyWriter("particle", particle_writers);
} }
void delete_object_writer(AbstractHierarchyWriter *writer) override void delete_object_writer(AbstractHierarchyWriter *writer) override