mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-01 12:51:12 +00:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a493c3c80f |
Vendored
+1
-11
@@ -151,12 +151,6 @@ elseif(APPLE)
|
|||||||
# the post-install -add_rpath below.
|
# the post-install -add_rpath below.
|
||||||
set(_python_ldflags "${_python_arch_flags} -Wl,-headerpad_max_install_names")
|
set(_python_ldflags "${_python_arch_flags} -Wl,-headerpad_max_install_names")
|
||||||
|
|
||||||
# The macOS 27 SDK declares pipe2() and dup3() as available from macOS 27, so
|
|
||||||
# configure finds them and CPython 3.12 calls them without a runtime check.
|
|
||||||
# Below a macOS 27 deployment target they are weak-linked and resolve to NULL
|
|
||||||
# on older systems, where os.pipe() then segfaults -- in `make install`
|
|
||||||
# (compileall, ensurepip) and in the shipped app alike. Every configure below
|
|
||||||
# keeps the pipe()/dup2() fallbacks (python/cpython#153711).
|
|
||||||
if(IS_CROSS_COMPILE)
|
if(IS_CROSS_COMPILE)
|
||||||
set(_python_build_tgt --build=${_python_build_arch}-apple-darwin --host=${_python_host_arch}-apple-darwin)
|
set(_python_build_tgt --build=${_python_build_arch}-apple-darwin --host=${_python_host_arch}-apple-darwin)
|
||||||
set(_python_build_arch_flags "-arch ${_python_build_arch_flag} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
set(_python_build_arch_flags "-arch ${_python_build_arch_flag} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||||
@@ -180,8 +174,7 @@ elseif(APPLE)
|
|||||||
--enable-shared \
|
--enable-shared \
|
||||||
--without-static-libpython \
|
--without-static-libpython \
|
||||||
--disable-test-modules \
|
--disable-test-modules \
|
||||||
--build=${_python_build_arch}-apple-darwin \
|
--build=${_python_build_arch}-apple-darwin && \
|
||||||
ac_cv_func_pipe2=no ac_cv_func_dup3=no && \
|
|
||||||
make -j${NPROC} python && \
|
make -j${NPROC} python && \
|
||||||
cd '<SOURCE_DIR>' && \
|
cd '<SOURCE_DIR>' && \
|
||||||
env \
|
env \
|
||||||
@@ -198,7 +191,6 @@ elseif(APPLE)
|
|||||||
--without-static-libpython \
|
--without-static-libpython \
|
||||||
--with-openssl='${DESTDIR}' \
|
--with-openssl='${DESTDIR}' \
|
||||||
--disable-test-modules \
|
--disable-test-modules \
|
||||||
ac_cv_func_pipe2=no ac_cv_func_dup3=no \
|
|
||||||
${_python_build_tgt} \
|
${_python_build_tgt} \
|
||||||
--with-build-python='${_python_build_python}' \
|
--with-build-python='${_python_build_python}' \
|
||||||
py_cv_module__tkinter=n/a"
|
py_cv_module__tkinter=n/a"
|
||||||
@@ -221,8 +213,6 @@ elseif(APPLE)
|
|||||||
--with-openssl=${DESTDIR}
|
--with-openssl=${DESTDIR}
|
||||||
--disable-test-modules
|
--disable-test-modules
|
||||||
${_python_build_tgt}
|
${_python_build_tgt}
|
||||||
ac_cv_func_pipe2=no
|
|
||||||
ac_cv_func_dup3=no
|
|
||||||
# Tcl/Tk 9.0 (e.g. from Homebrew) is incompatible with CPython 3.12's
|
# Tcl/Tk 9.0 (e.g. from Homebrew) is incompatible with CPython 3.12's
|
||||||
# _tkinter; OrcaSlicer's embedded Python does not need tkinter anyway.
|
# _tkinter; OrcaSlicer's embedded Python does not need tkinter anyway.
|
||||||
py_cv_module__tkinter=n/a
|
py_cv_module__tkinter=n/a
|
||||||
|
|||||||
@@ -6,8 +6,6 @@
|
|||||||
#include <array>
|
#include <array>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
#include <cassert>
|
|
||||||
|
|
||||||
namespace Slic3r {
|
namespace Slic3r {
|
||||||
using RGB = std::array<float, 3>;
|
using RGB = std::array<float, 3>;
|
||||||
using RGBA = std::array<float, 4>;
|
using RGBA = std::array<float, 4>;
|
||||||
|
|||||||
@@ -1,39 +1,6 @@
|
|||||||
#include <catch2/catch_all.hpp>
|
#include <catch2/catch_all.hpp>
|
||||||
|
|
||||||
#include "slic3r/Utils/Http.hpp"
|
#include "slic3r/Utils/Http.hpp"
|
||||||
#include "slic3r/Utils/OrcaCloudServiceAgent.hpp"
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
nlohmann::json flat_session_json(const nlohmann::json& fields)
|
|
||||||
{
|
|
||||||
nlohmann::json session = {
|
|
||||||
{"access_token", "test-token"},
|
|
||||||
{"user_id", "test-user-id"}
|
|
||||||
};
|
|
||||||
session.update(fields);
|
|
||||||
return session;
|
|
||||||
}
|
|
||||||
|
|
||||||
nlohmann::json nested_session_json(const nlohmann::json& metadata)
|
|
||||||
{
|
|
||||||
return {
|
|
||||||
{"access_token", "test-token"},
|
|
||||||
{"user", {
|
|
||||||
{"id", "test-user-id"},
|
|
||||||
{"user_metadata", metadata}
|
|
||||||
}}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string resolved_display_name(const nlohmann::json& session)
|
|
||||||
{
|
|
||||||
Slic3r::OrcaCloudServiceAgent agent("");
|
|
||||||
REQUIRE(agent.set_user_session(session, false));
|
|
||||||
return agent.get_user_nickname();
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
TEST_CASE("Check SSL certificates paths", "[Http][NotWorking]") {
|
TEST_CASE("Check SSL certificates paths", "[Http][NotWorking]") {
|
||||||
|
|
||||||
@@ -53,62 +20,6 @@ TEST_CASE("Check SSL certificates paths", "[Http][NotWorking]") {
|
|||||||
REQUIRE(status == 200);
|
REQUIRE(status == 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("Orca cloud flat session resolves display name consistently", "[OrcaCloudServiceAgent]")
|
|
||||||
{
|
|
||||||
CHECK(resolved_display_name(flat_session_json({
|
|
||||||
{"username", "orca_username"},
|
|
||||||
{"display_name", "Display Name"},
|
|
||||||
{"nickname", "Nickname"}
|
|
||||||
})) == "Display Name");
|
|
||||||
|
|
||||||
CHECK(resolved_display_name(flat_session_json({
|
|
||||||
{"username", "orca_username"},
|
|
||||||
{"nickname", "Nickname"}
|
|
||||||
})) == "Nickname");
|
|
||||||
|
|
||||||
CHECK(resolved_display_name(flat_session_json({
|
|
||||||
{"username", "orca_username"},
|
|
||||||
{"full_name", "Full Name"}
|
|
||||||
})) == "Full Name");
|
|
||||||
|
|
||||||
CHECK(resolved_display_name(flat_session_json({
|
|
||||||
{"username", "orca_username"},
|
|
||||||
{"name", "Provider Name"}
|
|
||||||
})) == "Provider Name");
|
|
||||||
|
|
||||||
CHECK(resolved_display_name(flat_session_json({
|
|
||||||
{"username", "orca_username"}
|
|
||||||
})) == "orca_username");
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_CASE("Orca cloud nested session resolves display name consistently", "[OrcaCloudServiceAgent]")
|
|
||||||
{
|
|
||||||
CHECK(resolved_display_name(nested_session_json({
|
|
||||||
{"username", "orca_username"},
|
|
||||||
{"display_name", "Display Name"},
|
|
||||||
{"nickname", "Nickname"}
|
|
||||||
})) == "Display Name");
|
|
||||||
|
|
||||||
CHECK(resolved_display_name(nested_session_json({
|
|
||||||
{"username", "orca_username"},
|
|
||||||
{"nickname", "Nickname"}
|
|
||||||
})) == "Nickname");
|
|
||||||
|
|
||||||
CHECK(resolved_display_name(nested_session_json({
|
|
||||||
{"username", "orca_username"},
|
|
||||||
{"full_name", "Full Name"}
|
|
||||||
})) == "Full Name");
|
|
||||||
|
|
||||||
CHECK(resolved_display_name(nested_session_json({
|
|
||||||
{"username", "orca_username"},
|
|
||||||
{"name", "Provider Name"}
|
|
||||||
})) == "Provider Name");
|
|
||||||
|
|
||||||
CHECK(resolved_display_name(nested_session_json({
|
|
||||||
{"username", "orca_username"}
|
|
||||||
})) == "orca_username");
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_CASE("Http digest authentication", "[Http][NotWorking]") {
|
TEST_CASE("Http digest authentication", "[Http][NotWorking]") {
|
||||||
Slic3r::Http g = Slic3r::Http::get("https://httpbingo.org/digest-auth/auth/guest/guest");
|
Slic3r::Http g = Slic3r::Http::get("https://httpbingo.org/digest-auth/auth/guest/guest");
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,37 @@ std::unique_ptr<OrcaCloudServiceAgent> make_file_backed_agent(const fs::path& di
|
|||||||
|
|
||||||
fs::path secret_file(const fs::path& dir) { return dir / secret_constants::USER_SECRET_FILENAME; }
|
fs::path secret_file(const fs::path& dir) { return dir / secret_constants::USER_SECRET_FILENAME; }
|
||||||
|
|
||||||
|
nlohmann::json flat_session_json(const nlohmann::json& fields)
|
||||||
|
{
|
||||||
|
nlohmann::json session = {
|
||||||
|
{"access_token", "test-token"},
|
||||||
|
{"user_id", "test-user-id"}
|
||||||
|
};
|
||||||
|
session.update(fields);
|
||||||
|
return session;
|
||||||
|
}
|
||||||
|
|
||||||
|
nlohmann::json nested_session_json(const nlohmann::json& metadata)
|
||||||
|
{
|
||||||
|
return {
|
||||||
|
{"access_token", "test-token"},
|
||||||
|
{"user", {
|
||||||
|
{"id", "test-user-id"},
|
||||||
|
{"user_metadata", metadata}
|
||||||
|
}}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// set_user_session() persists the session, so it goes to a throwaway token file rather than the
|
||||||
|
// system keychain of whoever runs the tests.
|
||||||
|
std::string resolved_display_name(const nlohmann::json& session)
|
||||||
|
{
|
||||||
|
ScopedTemporaryDir dir("orca-secret");
|
||||||
|
auto agent = make_file_backed_agent(dir.path());
|
||||||
|
REQUIRE(agent->set_user_session(session, false));
|
||||||
|
return agent->get_user_nickname();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
TEST_CASE("Logging out removes the secret this instance saved", "[OrcaCloudServiceAgent]")
|
TEST_CASE("Logging out removes the secret this instance saved", "[OrcaCloudServiceAgent]")
|
||||||
@@ -84,3 +115,59 @@ TEST_CASE("Logging out leaves a secret this instance could not read alone", "[Or
|
|||||||
agent->user_logout(false);
|
agent->user_logout(false);
|
||||||
CHECK(fs::exists(secret_file(dir.path())));
|
CHECK(fs::exists(secret_file(dir.path())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("Orca cloud flat session resolves display name consistently", "[OrcaCloudServiceAgent]")
|
||||||
|
{
|
||||||
|
CHECK(resolved_display_name(flat_session_json({
|
||||||
|
{"username", "orca_username"},
|
||||||
|
{"display_name", "Display Name"},
|
||||||
|
{"nickname", "Nickname"}
|
||||||
|
})) == "Display Name");
|
||||||
|
|
||||||
|
CHECK(resolved_display_name(flat_session_json({
|
||||||
|
{"username", "orca_username"},
|
||||||
|
{"nickname", "Nickname"}
|
||||||
|
})) == "Nickname");
|
||||||
|
|
||||||
|
CHECK(resolved_display_name(flat_session_json({
|
||||||
|
{"username", "orca_username"},
|
||||||
|
{"full_name", "Full Name"}
|
||||||
|
})) == "Full Name");
|
||||||
|
|
||||||
|
CHECK(resolved_display_name(flat_session_json({
|
||||||
|
{"username", "orca_username"},
|
||||||
|
{"name", "Provider Name"}
|
||||||
|
})) == "Provider Name");
|
||||||
|
|
||||||
|
CHECK(resolved_display_name(flat_session_json({
|
||||||
|
{"username", "orca_username"}
|
||||||
|
})) == "orca_username");
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("Orca cloud nested session resolves display name consistently", "[OrcaCloudServiceAgent]")
|
||||||
|
{
|
||||||
|
CHECK(resolved_display_name(nested_session_json({
|
||||||
|
{"username", "orca_username"},
|
||||||
|
{"display_name", "Display Name"},
|
||||||
|
{"nickname", "Nickname"}
|
||||||
|
})) == "Display Name");
|
||||||
|
|
||||||
|
CHECK(resolved_display_name(nested_session_json({
|
||||||
|
{"username", "orca_username"},
|
||||||
|
{"nickname", "Nickname"}
|
||||||
|
})) == "Nickname");
|
||||||
|
|
||||||
|
CHECK(resolved_display_name(nested_session_json({
|
||||||
|
{"username", "orca_username"},
|
||||||
|
{"full_name", "Full Name"}
|
||||||
|
})) == "Full Name");
|
||||||
|
|
||||||
|
CHECK(resolved_display_name(nested_session_json({
|
||||||
|
{"username", "orca_username"},
|
||||||
|
{"name", "Provider Name"}
|
||||||
|
})) == "Provider Name");
|
||||||
|
|
||||||
|
CHECK(resolved_display_name(nested_session_json({
|
||||||
|
{"username", "orca_username"}
|
||||||
|
})) == "orca_username");
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user