Hello community,

here is the log from the commit of package libSavitar for openSUSE:Factory 
checked in at 2020-06-07 21:55:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libSavitar (Old)
 and      /work/SRC/openSUSE:Factory/.libSavitar.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libSavitar"

Sun Jun  7 21:55:54 2020 rev:6 rq:812284 version:4.6.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/libSavitar/libSavitar.changes    2020-01-03 
17:36:52.943292524 +0100
+++ /work/SRC/openSUSE:Factory/.libSavitar.new.3606/libSavitar.changes  
2020-06-07 21:55:56.680794487 +0200
@@ -1,0 +2,8 @@
+Sun Jun  7 17:55:54 UTC 2020 - Stefan BrĂ¼ns <stefan.bru...@rwth-aachen.de>
+
+- update to version 4.6.1
+  * mostly internal changes
+- Fix Savitar python import error with current PyQt5, add
+  libSavitar-3.5.1-PyQt5.sip.patch
+
+-------------------------------------------------------------------

Old:
----
  libSavitar-4.4.1.obscpio

New:
----
  libSavitar-3.5.1-PyQt5.sip.patch
  libSavitar-4.6.1.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libSavitar.spec ++++++
--- /var/tmp/diff_new_pack.xPInCN/_old  2020-06-07 21:55:57.948798478 +0200
+++ /var/tmp/diff_new_pack.xPInCN/_new  2020-06-07 21:55:57.952798491 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package libSavitar
 #
-# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %define sover 0
 Name:           libSavitar
-Version:        4.4.1
+Version:        4.6.1
 Release:        0
 Summary:        C++ implementation of 3mf loading with SIP python bindings
 License:        LGPL-3.0-only
@@ -27,6 +27,8 @@
 Source0:        %{name}-%{version}.tar.xz
 # PATCH-FIX-OPENSUSE -- Use system libraries instead of embedded ones.
 Patch0:         use-system-libs.patch
+# PATCH-FIX-OPENSUSE - use Qt5 sip import name, taken from Fedora
+Patch1:         libSavitar-3.5.1-PyQt5.sip.patch
 BuildRequires:  cmake >= 2.8.12
 BuildRequires:  gmock
 BuildRequires:  gtest

++++++ _service ++++++
--- /var/tmp/diff_new_pack.xPInCN/_old  2020-06-07 21:55:57.980798579 +0200
+++ /var/tmp/diff_new_pack.xPInCN/_new  2020-06-07 21:55:57.980798579 +0200
@@ -2,8 +2,8 @@
   <service name="obs_scm" mode="disabled">
     <param name="url">git://github.com/Ultimaker/libSavitar.git</param>
     <param name="scm">git</param>
-    <param name="revision">v4.4.1</param>
-    <param name="version">4.4.1</param>
+    <param name="revision">4.6.1</param>
+    <param name="version">4.6.1</param>
   </service>
   <service mode="disabled" name="set_version" />
 

++++++ libSavitar-3.5.1-PyQt5.sip.patch ++++++
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b190c15..6aa9963 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -75,7 +75,7 @@ endif()
 if(BUILD_PYTHON)
     set(SIP_EXTRA_FILES_DEPEND python/Types.sip python/MeshData.sip 
python/SceneNode.sip python/Scene.sip)
     #set(SIP_EXTRA_SOURCE_FILES python/Types.cpp)
-    set(SIP_EXTRA_OPTIONS -g) # -g means always release the GIL before calling 
C++ methods.
+    set(SIP_EXTRA_OPTIONS -g -n PyQt5.sip) # -g means always release the GIL 
before calling C++ methods.
     add_sip_python_module(Savitar python/ThreeMFParser.sip Savitar)
 endif()
 
++++++ libSavitar-4.4.1.obscpio -> libSavitar-4.6.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/.github/workflows/cicd.yml 
new/libSavitar-4.6.1/.github/workflows/cicd.yml
--- old/libSavitar-4.4.1/.github/workflows/cicd.yml     1970-01-01 
01:00:00.000000000 +0100
+++ new/libSavitar-4.6.1/.github/workflows/cicd.yml     2020-04-16 
14:54:12.000000000 +0200
@@ -0,0 +1,13 @@
+---
+name: CI/CD
+on: [push, pull_request]
+jobs:
+  build:
+    name: Build and test
+    runs-on: ubuntu-latest
+    container: ultimaker/cura-build-environment
+    steps:
+    - name: Checkout master
+      uses: actions/checkout@v1.2.0
+    - name: Build and test
+      run: docker/build.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/.gitlab-ci.yml 
new/libSavitar-4.6.1/.gitlab-ci.yml
--- old/libSavitar-4.4.1/.gitlab-ci.yml 2019-09-17 11:34:47.000000000 +0200
+++ new/libSavitar-4.6.1/.gitlab-ci.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-image: registry.gitlab.com/ultimaker/cura/cura-build-environment:centos7
-
-stages:
-  - build
-
-build and test linux:
-  stage: build
-  tags:
-    - cura
-    - docker
-    - linux
-  script:
-    - docker/build.sh
-  artifacts:
-    paths:
-      - build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/CMakeLists.txt 
new/libSavitar-4.6.1/CMakeLists.txt
--- old/libSavitar-4.4.1/CMakeLists.txt 2019-09-17 11:34:47.000000000 +0200
+++ new/libSavitar-4.6.1/CMakeLists.txt 2020-04-16 14:54:12.000000000 +0200
@@ -46,6 +46,7 @@
 endif()
 
 set(savitar_SRCS
+    src/Namespace.cpp
     src/ThreeMFParser.cpp
     src/SceneNode.cpp
     src/Scene.cpp
@@ -55,6 +56,7 @@
 )
 
 set(savitar_HDRS
+    src/Namespace.h
     src/ThreeMFParser.h
     src/Types.h
     src/SceneNode.h
@@ -140,6 +142,7 @@
 set(savitar_TEST
     ThreeMFParserTest
     MeshDataTest
+    NamespaceTest
 )
 
 # Compiling the test environment.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/docker/build.sh 
new/libSavitar-4.6.1/docker/build.sh
--- old/libSavitar-4.4.1/docker/build.sh        2019-09-17 11:34:47.000000000 
+0200
+++ new/libSavitar-4.6.1/docker/build.sh        2020-04-16 14:54:12.000000000 
+0200
@@ -18,6 +18,7 @@
     -DCMAKE_BUILD_TYPE=Debug \
     -DCMAKE_PREFIX_PATH="${CURA_BUILD_ENV_PATH}" \
     -DBUILD_TESTS=ON \
+    -DBUILD_STATIC=ON \
     ..
 make
 ctest3 --output-on-failure -T Test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/python/SceneNode.sip 
new/libSavitar-4.6.1/python/SceneNode.sip
--- old/libSavitar-4.4.1/python/SceneNode.sip   2019-09-17 11:34:47.000000000 
+0200
+++ new/libSavitar-4.6.1/python/SceneNode.sip   2020-04-16 14:54:12.000000000 
+0200
@@ -31,6 +31,12 @@
 
     std::string getTransformation();
     void setTransformation(std::string);
+    
+    std::string getName();
+    void setName(std::string name);
+
+    std::string getId();
+    void setId(std::string id);
 
     std::map<std::string, std::string> getSettings();
     void setSetting(std::string key, std::string value);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/src/Namespace.cpp 
new/libSavitar-4.6.1/src/Namespace.cpp
--- old/libSavitar-4.4.1/src/Namespace.cpp      1970-01-01 01:00:00.000000000 
+0100
+++ new/libSavitar-4.6.1/src/Namespace.cpp      2020-04-16 14:54:12.000000000 
+0200
@@ -0,0 +1,55 @@
+//Copyright (c) 2020 Ultimaker B.V.
+//libSavitar is released under the terms of the AGPLv3 or higher.
+
+#include "Namespace.h"
+
+#include "../pugixml/src/pugixml.hpp"
+
+namespace xml_namespace
+{
+    std::string getCuraUri() { return 
std::string("http://software.ultimaker.com/xml/cura/3mf/2015/10";); }
+    std::string getDefaultUri() { return 
std::string("http://schemas.microsoft.com/3dmanufacturing/core/2015/02";); }
+
+    void appendNamespaceAttributes(xmlns_map_t& map, std::set<std::string>& 
namespace_names, const pugi::xml_node& xml_node)
+    {
+        for (const pugi::xml_attribute& attribute : xml_node.attributes())
+        {
+            const std::string name = attribute.name();
+            const std::string name_start = name.substr(0, name.size() >= 5 ? 5 
: std::string::npos);
+            if (name_start.compare("xmlns") != 0)
+            {
+                continue;
+            }
+
+            const std::string namespace_name = name.size() <= 5 ? "" : 
name.substr(6);
+            const std::string namespace_glob = attribute.value();
+            if (namespace_names.count(namespace_name) > 0) // <-- check for 
overwrites
+            {
+                continue; // <-- since it's going up the tree from the node, 
not down from the parent
+            }
+            if (map.count(namespace_glob) < 1)
+            {
+                map[namespace_glob] = std::set<std::string>();
+            }
+            map[namespace_glob].insert(namespace_name);
+            namespace_names.insert(namespace_name);
+        }
+    }
+
+    xmlns_map_t getAncestralNamespaces(const pugi::xml_node& xml_node)
+    {
+        xmlns_map_t result;
+        std::set<std::string> namespace_names;
+        for (pugi::xml_node current_node = xml_node; current_node; 
current_node = current_node.parent())
+        {
+            appendNamespaceAttributes(result, namespace_names, current_node);
+        }
+        return result;
+    }
+
+    std::set<std::string> getNamesFor(const xmlns_map_t& map, const 
std::string& uri)
+    {
+        return (map.count(uri) > 0) ? map.at(uri) : std::set<std::string>();
+    }
+
+} //namespace xml_namespace
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/src/Namespace.h 
new/libSavitar-4.6.1/src/Namespace.h
--- old/libSavitar-4.4.1/src/Namespace.h        1970-01-01 01:00:00.000000000 
+0100
+++ new/libSavitar-4.6.1/src/Namespace.h        2020-04-16 14:54:12.000000000 
+0200
@@ -0,0 +1,29 @@
+//Copyright (c) 2020 Ultimaker B.V.
+//libSavitar is released under the terms of the AGPLv3 or higher.
+
+#ifndef NAMESPACE_H
+#define NAMESPACE_H
+
+#include "SavitarExport.h"
+#include <map>
+#include <set>
+#include <string>
+
+// Forward declaration
+namespace pugi
+{
+    class xml_node;
+}
+
+namespace xml_namespace
+{
+    typedef std::map<std::string, std::set<std::string>> xmlns_map_t;
+
+    std::string getCuraUri();
+    std::string getDefaultUri();
+
+    xmlns_map_t SAVITAR_EXPORT getAncestralNamespaces(const pugi::xml_node& 
xml_node);
+    std::set<std::string> SAVITAR_EXPORT getNamesFor(const xmlns_map_t& map, 
const std::string& uri);
+} //namespace xml_namespace
+
+#endif
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/src/SceneNode.cpp 
new/libSavitar-4.6.1/src/SceneNode.cpp
--- old/libSavitar-4.4.1/src/SceneNode.cpp      2019-09-17 11:34:47.000000000 
+0200
+++ new/libSavitar-4.6.1/src/SceneNode.cpp      2020-04-16 14:54:12.000000000 
+0200
@@ -17,6 +17,7 @@
  */
 
 #include "SceneNode.h"
+#include "Namespace.h"
 #include "../pugixml/src/pugixml.hpp"
 #include <iostream>
 using namespace Savitar;
@@ -70,6 +71,7 @@
 {
     settings.clear();
     id = xml_node.attribute("id").as_string();
+    name = xml_node.attribute("name").as_string();
 
     if(xml_node.child("mesh"))
     {
@@ -95,11 +97,17 @@
     {
         for (pugi::xml_node setting = metadatagroup_node.child("metadata"); 
setting; setting = setting.next_sibling("metadata"))
         {
+            // NOTE: In theory this could be slow, since we look up the entire 
ancestry tree for each setting.
+            //       In practice it's expected to be negligible compared to 
the parsing of the mesh.
+            const xml_namespace::xmlns_map_t namespaces = 
xml_namespace::getAncestralNamespaces(setting);
+            std::set<std::string> cura_equivalent_namespaces = 
xml_namespace::getNamesFor(namespaces, xml_namespace::getCuraUri());
+            cura_equivalent_namespaces.insert("cura"); // <- Just to be sure: 
If there was ever a version out that uses 'cura' without the specification of 
the xmlns-id.
+
             std::string key = setting.attribute("name").as_string();
             const size_t pos = key.find_first_of(':');
 
-            // Other namespaces can be in the metadata, not just Cura's, don't 
load those:
-            if (key.substr(0, pos).compare("cura") != 0)
+            // Only accept namespaces cura and implied 'default':
+            if (pos != std::string::npos && 
cura_equivalent_namespaces.count(key.substr(0, pos)) < 1)
             {
                 continue;
             }
@@ -121,6 +129,16 @@
     this->id = id;
 }
 
+std::string SceneNode::getName()
+{
+    return this->name;
+}
+
+void SceneNode::setName(std::string name)
+{
+    this->name = name;
+}
+
 std::map< std::string, std::string > SceneNode::getSettings()
 {
     return settings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/src/SceneNode.h 
new/libSavitar-4.6.1/src/SceneNode.h
--- old/libSavitar-4.4.1/src/SceneNode.h        2019-09-17 11:34:47.000000000 
+0200
+++ new/libSavitar-4.6.1/src/SceneNode.h        2020-04-16 14:54:12.000000000 
+0200
@@ -62,6 +62,13 @@
         void setId(std::string id);
 
         /**
+         * Get the (non-unique) display name of the node.
+         */
+        std::string getName();
+
+        void setName(std::string name);
+
+        /**
          * Get the (per-object) settings attached to this SceneNode.
          * Note that this is part of the Cura Extension and not 3mf Core.
          */
@@ -75,6 +82,7 @@
         MeshData mesh_data;
         std::map<std::string, std::string> settings;
         std::string id;
+        std::string name;
     };
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/src/ThreeMFParser.cpp 
new/libSavitar-4.6.1/src/ThreeMFParser.cpp
--- old/libSavitar-4.4.1/src/ThreeMFParser.cpp  2019-09-17 11:34:47.000000000 
+0200
+++ new/libSavitar-4.6.1/src/ThreeMFParser.cpp  2020-04-16 14:54:12.000000000 
+0200
@@ -17,6 +17,7 @@
  */
 
 #include "ThreeMFParser.h"
+#include "Namespace.h"
 #include "Scene.h"
 #include <iostream>
 #include <sstream>
@@ -55,8 +56,8 @@
     pugi::xml_node build_node = model_node.append_child("build");
 
     model_node.append_attribute("unit") = scene.getUnit().c_str();
-    model_node.append_attribute("xmlns") = 
"http://schemas.microsoft.com/3dmanufacturing/core/2015/02";;
-    model_node.append_attribute("xmlns:cura") = 
"http://software.ultimaker.com/xml/cura/3mf/2015/10";;
+    model_node.append_attribute("xmlns") = xml_namespace::getCuraUri().c_str();
+    model_node.append_attribute("xmlns:cura") = 
xml_namespace::getDefaultUri().c_str();
     model_node.append_attribute("xml:lang") ="en-US";
 
     for(int i = 0; i < scene.getAllSceneNodes().size(); i++)
@@ -70,6 +71,10 @@
         // Create item
         pugi::xml_node object = resources_node.append_child("object");
         object.append_attribute("id") = scene_node->getId().c_str();
+        if(!scene_node->getName().empty())
+        {
+            object.append_attribute("name") = scene_node->getName().c_str();
+        }
         object.append_attribute("type") = "model";
 
         if(scene_node->getMeshData().getVertices().size() != 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/tests/NamespaceTest.cpp 
new/libSavitar-4.6.1/tests/NamespaceTest.cpp
--- old/libSavitar-4.4.1/tests/NamespaceTest.cpp        1970-01-01 
01:00:00.000000000 +0100
+++ new/libSavitar-4.6.1/tests/NamespaceTest.cpp        2020-04-16 
14:54:12.000000000 +0200
@@ -0,0 +1,115 @@
+//Copyright (c) 2020 Ultimaker B.V.
+//libSavitar is released under the terms of the AGPLv3 or higher.
+
+#include "../src/Namespace.h"
+
+#include <fstream>
+#include <gtest/gtest.h>
+#include <iostream>
+#include <string>
+#include "../pugixml/src/pugixml.hpp"
+
+namespace xml_namespace
+{
+    class NamespaceTest : public testing::Test
+    {
+    public:
+        pugi::xml_document document;
+        pugi::xml_node main_xml_node;
+
+        void SetUp()
+        {
+            std::ifstream test_model_file("../tests/namespaces.xml");
+            if (test_model_file.is_open())
+            {
+                const std::string 
xml_string(std::istreambuf_iterator<char>{test_model_file}, {});
+
+                pugi::xml_parse_result result = 
document.load_string(xml_string.c_str());
+                main_xml_node = document.child("main");
+            }
+        }
+    };
+
+    TEST_F(NamespaceTest, getAncestralNamespaces)
+    {
+        ASSERT_TRUE(main_xml_node);
+
+        pugi::xml_node node;
+        xml_namespace::xmlns_map_t result;
+
+        node = main_xml_node.child("simple");
+        result = xml_namespace::getAncestralNamespaces(node);
+        ASSERT_EQ(result.size(), 2); // <-- including default namespace
+        ASSERT_EQ(result["_a_"].size(), 1);
+        ASSERT_EQ(result["_a_"].count("a"), 1);
+
+        node = main_xml_node.child("multiple");
+        result = xml_namespace::getAncestralNamespaces(node);
+        ASSERT_EQ(result["_a_"].count("a"), 1);
+        ASSERT_EQ(result["_b_"].count("b"), 1);
+        ASSERT_EQ(result["_c_"].count("c"), 1);
+
+        node = main_xml_node.child("overwrite"); // _before_ overwrite
+        result = xml_namespace::getAncestralNamespaces(node);
+        ASSERT_EQ(result.size(), 2);
+        ASSERT_EQ(result["_b_"].size(), 1);
+        ASSERT_EQ(result["_b_"].count("b"), 1);
+
+        node = main_xml_node.child("overwrite").child("sub"); // _after_ 
overwrite
+        result = xml_namespace::getAncestralNamespaces(node);
+        ASSERT_EQ(result.size(), 2);
+        ASSERT_EQ(result.count("_b_"), 0);
+        ASSERT_EQ(result["_c_"].size(), 1);
+        ASSERT_EQ(result["_c_"].count("b"), 1);
+
+        node = main_xml_node.child("combine").child("sub");
+        result = xml_namespace::getAncestralNamespaces(node);
+        ASSERT_EQ(result.size(), 2);
+        ASSERT_EQ(result["_s_"].size(), 2);
+        ASSERT_EQ(result["_s_"].count("s"), 1);
+        ASSERT_EQ(result["_s_"].count("n"), 1);
+
+        node = main_xml_node.child("deep").child("sub");
+        result = xml_namespace::getAncestralNamespaces(node);
+        ASSERT_EQ(result.size(), 3);
+        ASSERT_EQ(result.count("_w_"), 0);
+        ASSERT_EQ(result.count("_x_"), 1);
+
+        node = 
main_xml_node.child("deep").child("sub").child("subber").child("subbest");
+        result = xml_namespace::getAncestralNamespaces(node);
+        ASSERT_EQ(result.size(), 6);
+        ASSERT_EQ(result.count("_w_"), 1);
+        ASSERT_EQ(result.count("_x_"), 1);
+
+        node = 
main_xml_node.child("multideep").child("sub").child("subber").child("subbest");
+        result = xml_namespace::getAncestralNamespaces(node);
+        ASSERT_EQ(result.size(), 6);
+        ASSERT_EQ(result.count("_w_"), 1);
+        ASSERT_EQ(result.count("_x_"), 1);
+
+        node = 
main_xml_node.child("multideep").child("subber").child("subbest");
+        result = xml_namespace::getAncestralNamespaces(node);
+        ASSERT_EQ(result.size(), 5);
+        ASSERT_EQ(result.count("_w_"), 0);
+        ASSERT_EQ(result.count("_e_"), 1);
+        ASSERT_EQ(result.count("_q_"), 1);
+        ASSERT_EQ(result.count("_r_"), 1);
+
+        node = main_xml_node.child("multideep").child("subbest");
+        result = xml_namespace::getAncestralNamespaces(node);
+        ASSERT_EQ(result.size(), 3);
+        ASSERT_EQ(result.count("_e_"), 0);
+        ASSERT_EQ(result.count("_q_"), 1);
+    }
+
+    // std::set<std::string> getNamesFor(const xmlns_map_t& map, const 
std::string& uri);
+    TEST_F(NamespaceTest, getNamesFor)
+    {
+        ASSERT_TRUE(main_xml_node);
+        pugi::xml_node node = 
main_xml_node.child("multideep").child("sub").child("subber").child("subbest");
+        xml_namespace::xmlns_map_t map = 
xml_namespace::getAncestralNamespaces(node);
+        ASSERT_EQ(xml_namespace::getNamesFor(map, "_w_").count("w"), 1);
+        ASSERT_EQ(xml_namespace::getNamesFor(map, "_p_").size(), 0);
+    }
+
+} // namespace xml_namespace
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/tests/ThreeMFParserTest.cpp 
new/libSavitar-4.6.1/tests/ThreeMFParserTest.cpp
--- old/libSavitar-4.4.1/tests/ThreeMFParserTest.cpp    2019-09-17 
11:34:47.000000000 +0200
+++ new/libSavitar-4.6.1/tests/ThreeMFParserTest.cpp    2020-04-16 
14:54:12.000000000 +0200
@@ -5,6 +5,7 @@
 #include "../src/SceneNode.h"
 #include "../src/ThreeMFParser.h"
 
+#include <array>
 #include <fstream>
 #include <gtest/gtest.h>
 #include <iostream>
@@ -99,6 +100,8 @@
     EXPECT_NE(settings.find("infill_pattern"), settings.end());
     EXPECT_EQ(settings["infill_pattern"].compare("concentric"), 0);
 
+    EXPECT_EQ(nodes[0]->getName().compare("test_object"), 0);
+    EXPECT_EQ(nodes[1]->getName().compare(""), 0);
     EXPECT_EQ(nodes[1]->getId().compare("2"), 0);
     EXPECT_FALSE(nodes[1]->getTransformation().empty());
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/tests/namespaces.xml 
new/libSavitar-4.6.1/tests/namespaces.xml
--- old/libSavitar-4.4.1/tests/namespaces.xml   1970-01-01 01:00:00.000000000 
+0100
+++ new/libSavitar-4.6.1/tests/namespaces.xml   2020-04-16 14:54:12.000000000 
+0200
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<main unit="millimeter" 
xmlns="http://schemas.microsoft.com/3dmanufacturing/core/2015/02"; 
xml:lang="en-US">
+
+    <simple xmlns:a="_a_"/>
+  
+    <multiple xmlns:a="_a_" xmlns:b="_b_" xmlns:c="_c_"/>
+  
+    <overwrite xmlns:b="_b_">
+      <sub xmlns:b="_c_"/>
+    </overwrite>
+
+    <combine xmlns:s="_s_">
+      <sub  xmlns:n="_s_"/>
+    </combine>
+  
+    <deep xmlns:x="_x_">
+      <sub xmlns:y="_y_">
+        <subber xmlns:z="_z_" xmlns:e="_e_">
+          <subbest xmlns:w="_w_">
+          </subbest>
+        </subber>
+      </sub>
+    </deep>
+
+  <multideep xmlns:x="_x_">
+    <sub xmlns:y="_y_">
+      <subber xmlns:z="_z_"  xmlns:e="_e_">
+        <subbest xmlns:w="_w_">
+        </subbest>
+      </subber>
+    </sub>
+    <subber xmlns:z="_q_"  xmlns:e="_e_">
+      <subbest xmlns:w="_r_">
+      </subbest>
+    </subber>
+    <subbest xmlns:w="_q_">
+    </subbest>
+  </multideep>
+  
+</main>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libSavitar-4.4.1/tests/test_model.xml 
new/libSavitar-4.6.1/tests/test_model.xml
--- old/libSavitar-4.4.1/tests/test_model.xml   2019-09-17 11:34:47.000000000 
+0200
+++ new/libSavitar-4.6.1/tests/test_model.xml   2020-04-16 14:54:12.000000000 
+0200
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <model unit="millimeter" 
xmlns="http://schemas.microsoft.com/3dmanufacturing/core/2015/02"; 
xml:lang="en-US">
     <resources>
-        <object id="1" type="model">
+        <object id="1" name="test_object" type="model">
             <!-- normal mesh with 3 unique vert-refs per triangle -->
             <mesh>
                 <vertices>

++++++ libSavitar.obsinfo ++++++
--- /var/tmp/diff_new_pack.xPInCN/_old  2020-06-07 21:55:58.092798932 +0200
+++ /var/tmp/diff_new_pack.xPInCN/_new  2020-06-07 21:55:58.096798944 +0200
@@ -1,5 +1,5 @@
 name: libSavitar
-version: 4.4.1
-mtime: 1568712887
-commit: 4e0baf3207943b0459268dd60c88888dea44f0a3
+version: 4.6.1
+mtime: 1587041652
+commit: 9ce623d9479aad18416aa18119c78b8fb831f4f6
 


Reply via email to