Skip to content

Commit

Permalink
Fixup tag name before tag comparison. (#2459)
Browse files Browse the repository at this point in the history
Close #2458
  • Loading branch information
abellgithub committed Apr 15, 2019
1 parent fc5e6bb commit dcd59b8
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 1 deletion.
2 changes: 1 addition & 1 deletion pdal/PipelineWriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,10 @@ std::string generateTag(Stage *stage, PipelineWriter::TagMap& tags)
for (size_t i = 1; ; ++i)
{
tag = stage->getName() + std::to_string(i);
tag = Utils::replaceAll(tag, ".", "_");
if (!tagExists(tag))
break;
}
tag = Utils::replaceAll(tag, ".", "_");
}
return tag;
}
Expand Down
6 changes: 6 additions & 0 deletions test/unit/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ PDAL_ADD_TEST(pdal_options_test
)

PDAL_ADD_TEST(pdal_pipeline_manager_test FILES PipelineManagerTest.cpp)
PDAL_ADD_TEST(pdal_pipeline_writer_test
FILES
PipelineWriterTest.cpp
INCLUDES
${PDAL_JSONCPP_INCLUDE_DIR}
)
PDAL_ADD_TEST(pdal_plugin_manager_test FILES PluginManagerTest.cpp)
PDAL_ADD_TEST(pdal_point_view_test FILES PointViewTest.cpp)
PDAL_ADD_TEST(pdal_point_table_test FILES PointTableTest.cpp)
Expand Down
69 changes: 69 additions & 0 deletions test/unit/PipelineWriterTest.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/******************************************************************************
* Copyright (c) 2019, Michael P. Gerlek (mpg@flaxen.com)
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following
* conditions are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided
* with the distribution.
* * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
* names of its contributors may be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
* OF SUCH DAMAGE.
****************************************************************************/

#include <pdal/pdal_test_main.hpp>

#include <sstream>

#include "Support.hpp"

#include <pdal/PipelineWriter.hpp>
#include <pdal/PipelineManager.hpp>
#include <pdal/util/FileUtils.hpp>

using namespace pdal;

// Make sure we handle duplicate stages properly.
TEST(PipelineManagerTest, issue_2458)
{
std::string in = R"(
[
"in.las",
"in2.las",
"out.las"
]
)";

PipelineManager mgr;
std::istringstream iss(in);
mgr.readPipeline(iss);

std::ostringstream oss;
PipelineWriter::writePipeline(mgr.getStage(), oss);

std::string out = oss.str();
EXPECT_TRUE(out.find("readers_las1") != std::string::npos);
EXPECT_TRUE(out.find("readers_las2") != std::string::npos);
EXPECT_TRUE(out.find("writers_las1") != std::string::npos);
}

0 comments on commit dcd59b8

Please sign in to comment.