From ee7d6de8a27925cd47933e6915cc49faaaf2953b Mon Sep 17 00:00:00 2001 From: Tomas Pecka <peckato1@fit.cvut.cz> Date: Fri, 25 Mar 2022 20:06:33 +0100 Subject: [PATCH] worker: bump core version We now build against core commmit 6fa14a8d87b625cf90204a79a415e85c87acc465 (0.0.0.r1468.g6fa14a8d8) [1]. This is a commit after new normalization was adopted. Not *that* much of the API was broken. Notable changes are that core now returns core::type_details instead of a std::string. Also the std::__cxx11::basic_string types are gone and replaced with a simple std::string. [1] https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library/commit/6fa14a8d87b625cf90204a79a415e85c87acc465 --- .gitlab-ci.yml | 2 +- .../WebUI/Toolbar/AlgorithmDrawer.tsx | 2 +- webui/src/reducers/algorithmData.ts | 3 +- worker/Dockerfile | 2 +- worker/src/utils/alt.cpp | 2 +- .../src/worker/introspection/introspect.cpp | 12 +++---- .../test-src/evaluator/AlgorithmNodeTest.cpp | 31 +++++++++++++------ 7 files changed, 31 insertions(+), 23 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6d06143a..7d4220d1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,7 +22,7 @@ image: alpine:3.15 build:worker: stage: build - image: gitlab.fit.cvut.cz:5000/algorithms-library-toolkit/automata-library/cli:snapshot + image: gitlab.fit.cvut.cz:5000/algorithms-library-toolkit/webui-client/core-snapshot:0.0.0.r1468.g6fa14a8d8 before_script: - apk add --no-cache curl && curl https://alt.fit.cvut.cz/repo/alpine/alt-dev-repo.sh | sh - apk add --no-cache build-base cmake jsoncpp-dev pkgconf apr-dev spdlog-dev catch2 activemq-cpp-dev argparse diff --git a/webui/src/components/WebUI/Toolbar/AlgorithmDrawer.tsx b/webui/src/components/WebUI/Toolbar/AlgorithmDrawer.tsx index f3add59e..7c1e85a6 100644 --- a/webui/src/components/WebUI/Toolbar/AlgorithmDrawer.tsx +++ b/webui/src/components/WebUI/Toolbar/AlgorithmDrawer.tsx @@ -76,7 +76,7 @@ export const AlgorithmDrawer = () => { handleButtonClick( 'inputString', 'string', - 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >', + 'std:string', [], '' ), diff --git a/webui/src/reducers/algorithmData.ts b/webui/src/reducers/algorithmData.ts index c90b19db..46049e27 100644 --- a/webui/src/reducers/algorithmData.ts +++ b/webui/src/reducers/algorithmData.ts @@ -206,8 +206,7 @@ export const algorithmReducer = ( nodes: state.nodes.update(id, emptyNode, (node) => ({ ...node, name: 'string', - resultType: - 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >', + resultType: 'std::string', nodeType: 'inputString', value })), diff --git a/worker/Dockerfile b/worker/Dockerfile index c01a20d8..a990975f 100644 --- a/worker/Dockerfile +++ b/worker/Dockerfile @@ -1,4 +1,4 @@ -ARG BASE_IMAGE=gitlab.fit.cvut.cz:5000/algorithms-library-toolkit/automata-library/cli:snapshot +ARG BASE_IMAGE=gitlab.fit.cvut.cz:5000/algorithms-library-toolkit/webui-client/core-snapshot:0.0.0.r1468.g6fa14a8d8 #----------------------------------------------------------------------------------------- diff --git a/worker/src/utils/alt.cpp b/worker/src/utils/alt.cpp index 0bcfb466..5da5a8e5 100644 --- a/worker/src/utils/alt.cpp +++ b/worker/src/utils/alt.cpp @@ -5,7 +5,7 @@ std::string abstractValueToString(const std::shared_ptr<abstraction::Value>& val) { - std::shared_ptr<abstraction::OperationAbstraction> op = abstraction::Registry::getValuePrinterAbstraction(val->getType()); + std::shared_ptr<abstraction::OperationAbstraction> op = abstraction::Registry::getValuePrinterAbstraction(val->getDeclaredType()); ext::ostringstream oss; op->attachInput(val, 0); diff --git a/worker/src/worker/introspection/introspect.cpp b/worker/src/worker/introspection/introspect.cpp index 2080a3d6..34fbbf21 100644 --- a/worker/src/worker/introspection/introspect.cpp +++ b/worker/src/worker/introspection/introspect.cpp @@ -20,10 +20,9 @@ Json::Value getAlgorithmOverloadJSON(const ext::tuple<abstraction::AlgorithmFull while (paramsIterator != params.cend() || paramsNamesIterator != paramsNames.cend()) { Json::Value paramJSON(Json::objectValue); - ; paramJSON["name"] = *paramsNamesIterator; - paramJSON["type"] = std::get<0>(*paramsIterator); + paramJSON["type"] = ext::to_string(std::get<0>(*paramsIterator)); paramsJSON.append(paramJSON); @@ -31,7 +30,7 @@ Json::Value getAlgorithmOverloadJSON(const ext::tuple<abstraction::AlgorithmFull ++paramsNamesIterator; } - overloadJSON["resultType"] = info.getResult().first; + overloadJSON["resultType"] = ext::to_string(info.getResult().first); overloadJSON["params"] = paramsJSON; if (auto docs = std::get<1>(overload)) { overloadJSON["docs"] = *docs; @@ -85,13 +84,12 @@ Json::Value getCastsJSON() { Json::Value castsJSON(Json::objectValue); - for (const ext::tuple<std::string, std::string, bool>& castPair : abstraction::Registry::listCasts()) { - const auto& isExplicit = std::get<2>(castPair); + for (const auto& [toType, fromType, isExplicit] : abstraction::Registry::listCasts()) { if (isExplicit) continue; - const auto& from = std::get<1>(castPair); - const auto& to = std::get<0>(castPair); + auto from = ext::to_string(fromType); + auto to = ext::to_string(toType); if (castsJSON[from].isNull()) castsJSON[from] = Json::Value(Json::arrayValue); diff --git a/worker/test-src/evaluator/AlgorithmNodeTest.cpp b/worker/test-src/evaluator/AlgorithmNodeTest.cpp index 23071e57..b35f8c6c 100644 --- a/worker/test-src/evaluator/AlgorithmNodeTest.cpp +++ b/worker/test-src/evaluator/AlgorithmNodeTest.cpp @@ -57,21 +57,32 @@ TEST_CASE("AlgorithmNode evaluate") TEST_CASE("AlgorithmNode multiple params evaluate") { - auto inputInt = std::make_shared<IntNode>("", 4, ext::vector<std::string>()); - auto inputBool = std::make_shared<BoolNode>("", false, ext::vector<std::string>()); - auto node = std::make_shared<AlgorithmNode>("", "string::generate::RandomStringFactory", ext::vector<std::string>()); + auto alphabetSize = std::make_shared<IntNode>("", 4, ext::vector<std::string>()); + auto randomizeAlphabet = std::make_shared<BoolNode>("", true, ext::vector<std::string>()); + auto lowerCase = std::make_shared<BoolNode>("", false, ext::vector<std::string>()); + auto randomAlphabet = std::make_shared<AlgorithmNode>("", "alphabet::generate::GenerateAlphabet", ext::vector<std::string>()); + + alphabetSize->createEdge(randomAlphabet, 0); + randomizeAlphabet->createEdge(randomAlphabet, 1); + lowerCase->createEdge(randomAlphabet, 2); + + auto stringSize = std::make_shared<IntNode>("", 10, ext::vector<std::string>()); + auto randomString = std::make_shared<AlgorithmNode>("", "string::generate::RandomStringFactory", ext::vector<std::string>()); auto mockOutputNode = std::make_shared<AlgorithmTestNodeMock>(); - inputInt->createEdge(node, 0); - inputInt->createEdge(node, 1); - inputBool->createEdge(node, 2); - inputBool->createEdge(node, 3); + stringSize->createEdge(randomString, 0); + randomAlphabet->createEdge(randomString, 1); + randomString->createEdge(mockOutputNode, 0); cli::Environment environment; - inputInt->evaluate(environment); - inputBool->evaluate(environment); - node->evaluate(environment); + alphabetSize->evaluate(environment); + randomizeAlphabet->evaluate(environment); + lowerCase->evaluate(environment); + randomAlphabet->evaluate(environment); + stringSize->evaluate(environment); + randomString->evaluate(environment); mockOutputNode->evaluate(environment); REQUIRE(mockOutputNode->getParams().size() == 1); + REQUIRE(abstractValueToString(mockOutputNode->getParams().at(0)).starts_with("(LinearString content")); } -- GitLab