From c5ceed94c515ca287ba6ba860229504d7e9e3172 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sun, 20 Jul 2025 19:58:42 +0200 Subject: [PATCH 01/12] Add v3.5 smoke tests --- smoke-release-testing/experiment.bash | 2 ++ 1 file changed, 2 insertions(+) diff --git a/smoke-release-testing/experiment.bash b/smoke-release-testing/experiment.bash index bf13abbd6..47e045170 100755 --- a/smoke-release-testing/experiment.bash +++ b/smoke-release-testing/experiment.bash @@ -13,6 +13,8 @@ echo "Memgraph is up and running!" source ./mgconsole/regex.bash test_regex $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +# TODO(gitbuda): Test v3.5 it's going to be amazing! + # NOTE: Test what's the exit status of the script by using `echo $?`: # * if it's == 0 -> all good # * if it's != 0 -> something went wrong. From 07865579567afb95c69fc94141497ccfb8536904 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sat, 16 Aug 2025 20:00:08 -0700 Subject: [PATCH 02/12] Add the KShortest and AllShortest tests --- smoke-release-testing/experiment.bash | 8 +-- .../mgconsole/shortest_paths.bash | 72 +++++++++++++++++++ 2 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 smoke-release-testing/mgconsole/shortest_paths.bash diff --git a/smoke-release-testing/experiment.bash b/smoke-release-testing/experiment.bash index 51a13b592..a8c1a6531 100755 --- a/smoke-release-testing/experiment.bash +++ b/smoke-release-testing/experiment.bash @@ -5,15 +5,13 @@ source "$SCRIPT_DIR/utils.bash" # NOTE: Use the below line if you just want to spin up the containers and leave them running. # run_memgraph_docker_containers RC RC # NOTE: Use the below line if you want to cleanup the containers after run of this script. -spinup_and_cleanup_memgraph_dockers none none +spinup_and_cleanup_memgraph_dockers Dockerhub RC echo "Waiting for memgraph to initialize..." wait_for_memgraph $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT echo "Memgraph is up and running!" -source ./mgconsole/vector_search.bash -test_vector_search $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT - -# TODO(gitbuda): Test v3.5 it's going to be amazing! +source ./mgconsole/shortest_paths.bash +test_shortest_paths $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT # NOTE: Test what's the exit status of the script by using `echo $?`: # * if it's == 0 -> all good diff --git a/smoke-release-testing/mgconsole/shortest_paths.bash b/smoke-release-testing/mgconsole/shortest_paths.bash new file mode 100644 index 000000000..32ae39d26 --- /dev/null +++ b/smoke-release-testing/mgconsole/shortest_paths.bash @@ -0,0 +1,72 @@ +#!/bin/bash +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source "$SCRIPT_DIR/../utils.bash" + +test_shortest_paths() { + __host="$1" + __port="$2" + echo "FEATURE: KShortest paths and AllShortest paths" + echo "MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + + create_graph_query=" + CREATE + (a:Node {id: 'A'}), + (b:Node {id: 'B'}), + (c:Node {id: 'C'}), + (d:Node {id: 'D'}), + (e:Node {id: 'E'}), + (f:Node {id: 'F'}), + (g:Node {id: 'G'}), + (a)-[:REL {weight: 1}]->(b), + (a)-[:REL {weight: 2}]->(c), + (b)-[:REL {weight: 1}]->(e), + (c)-[:REL {weight: 1}]->(e), + (a)-[:REL {weight: 3}]->(e), + (b)-[:REL {weight: 2}]->(d), + (d)-[:REL {weight: 1}]->(e), + (a)-[:REL {weight: 1}]->(f), + (f)-[:REL {weight: 1}]->(g), + (g)-[:REL {weight: 1}]->(e); + " + echo "$create_graph_query" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + + echo "SUBFEATURE: Test KShortest paths - find top 3 shortest paths from A to E" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Test KShortest paths with path length bounds" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 2..4]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Test KShortest paths with limit" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 2..4 | 5]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Test KShortest paths with hops limit" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 1..3]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Test KShortest paths with node filtering" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) WHERE ALL(n IN nodes(p) WHERE n.id IN ['A', 'B', 'C', 'E']) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Test KShortest paths with edge filtering" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) WHERE ALL(r IN relationships(p) WHERE r.weight <= 2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Test KShortest paths with weighted edges (using weight property)" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) RETURN p, reduce(total = 0, r IN relationships(p) | total + r.weight) AS total_weight ORDER BY total_weight;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Test KShortest paths with result ordering" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) RETURN p, length(p) AS path_length ORDER BY path_length;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Test KShortest paths with null start/end nodes (should return empty set)" + echo "MATCH (n1:Node {id: 'X'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Test KShortest paths with same start and end node (should return empty set)" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'A'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Test KShortest paths with the LIMIT clause" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) RETURN p LIMIT 1000;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + + echo "SUBFEATURE: Test AllShortest paths - find all shortest paths from A to E (with weight lambda)" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*AllShortest (r, n | r.weight)]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Test AllShortest paths with the upper bound (with weight lambda)" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*AllShortest ..4 (r, n | r.weight)]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Test AllShortest paths getting the path length (with weight lambda)" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*AllShortest (r, n | r.weight)]->(n2) RETURN DISTINCT length(p) AS path_length ORDER BY path_length;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + + echo "MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "KShortest and AllShortest paths testing completed successfully" +} + +if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then + # NOTE: Take a look at session_trace.bash for the v1 implementation of binary-docker picker. + trap cleanup_memgraph_binary_processes EXIT # To make sure cleanup is done. + set -e # To make sure the script will return non-0 in case of a failure. + run_memgraph_binary_and_test "--log-level=TRACE --log-file=mg_test_shortest_paths.logs" test_shortest_paths +fi From be26e50e98358db65d7dc0925fc55dab861d1562 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sat, 16 Aug 2025 20:11:17 -0700 Subject: [PATCH 03/12] Cleanup #1 --- smoke-release-testing/mgconsole/shortest_paths.bash | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/smoke-release-testing/mgconsole/shortest_paths.bash b/smoke-release-testing/mgconsole/shortest_paths.bash index 32ae39d26..9012f5455 100644 --- a/smoke-release-testing/mgconsole/shortest_paths.bash +++ b/smoke-release-testing/mgconsole/shortest_paths.bash @@ -31,13 +31,11 @@ test_shortest_paths() { echo "$create_graph_query" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port echo "SUBFEATURE: Test KShortest paths - find top 3 shortest paths from A to E" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest | 3]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port echo "SUBFEATURE: Test KShortest paths with path length bounds" echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 2..4]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test KShortest paths with limit" + echo "SUBFEATURE: Test KShortest paths with the bounds and limit" echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 2..4 | 5]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test KShortest paths with hops limit" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 1..3]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port echo "SUBFEATURE: Test KShortest paths with node filtering" echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) WHERE ALL(n IN nodes(p) WHERE n.id IN ['A', 'B', 'C', 'E']) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port echo "SUBFEATURE: Test KShortest paths with edge filtering" From adac97f2ae75d2c8a59d4f2c118e36267113ad06 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sun, 17 Aug 2025 12:03:34 -0700 Subject: [PATCH 04/12] Cleanup the shortest paths script --- .../mgconsole/query_modules.bash | 2 +- .../mgconsole/shortest_paths.bash | 86 +++++++++---------- smoke-release-testing/test_single_mage.bash | 1 + 3 files changed, 42 insertions(+), 47 deletions(-) diff --git a/smoke-release-testing/mgconsole/query_modules.bash b/smoke-release-testing/mgconsole/query_modules.bash index ed7160ac2..ac4f6bf09 100755 --- a/smoke-release-testing/mgconsole/query_modules.bash +++ b/smoke-release-testing/mgconsole/query_modules.bash @@ -8,7 +8,7 @@ test_query_modules() { echo "FEATURE: All MAGE query modules" # TODO(gitbuda): What are the 3 added modules? -> Probably the migration modules. - echo "CALL mg.procedures() YIELD * RETURN count(*) AS cnt;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port --output-format=csv | python3 $SCRIPT_DIR/validator.py first_as_int -f cnt -e 312 + echo "CALL mg.procedures() YIELD * RETURN count(*) AS cnt;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port --output-format=csv | python3 $SCRIPT_DIR/validator.py first_as_int -f cnt -e 313 echo "CREATE (a), (b), (c), (d), (a)-[:ET]->(b), (c)-[:ET]->(d);" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port echo "CALL leiden_community_detection.get() YIELD * RETURN communities, community_id, node;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port diff --git a/smoke-release-testing/mgconsole/shortest_paths.bash b/smoke-release-testing/mgconsole/shortest_paths.bash index 9012f5455..1e070f1d0 100644 --- a/smoke-release-testing/mgconsole/shortest_paths.bash +++ b/smoke-release-testing/mgconsole/shortest_paths.bash @@ -5,61 +5,55 @@ source "$SCRIPT_DIR/../utils.bash" test_shortest_paths() { __host="$1" __port="$2" - echo "FEATURE: KShortest paths and AllShortest paths" + echo "" + echo "FEATURE: Deep-path Traversal Capabilities" echo "MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - + create_graph_query=" CREATE - (a:Node {id: 'A'}), - (b:Node {id: 'B'}), - (c:Node {id: 'C'}), - (d:Node {id: 'D'}), - (e:Node {id: 'E'}), - (f:Node {id: 'F'}), - (g:Node {id: 'G'}), - (a)-[:REL {weight: 1}]->(b), - (a)-[:REL {weight: 2}]->(c), - (b)-[:REL {weight: 1}]->(e), - (c)-[:REL {weight: 1}]->(e), - (a)-[:REL {weight: 3}]->(e), - (b)-[:REL {weight: 2}]->(d), - (d)-[:REL {weight: 1}]->(e), - (a)-[:REL {weight: 1}]->(f), - (f)-[:REL {weight: 1}]->(g), - (g)-[:REL {weight: 1}]->(e); - " + (a:Node {id: 'A'}), + (b:Node {id: 'B'}), + (c:Node {id: 'C'}), + (d:Node {id: 'D'}), + (e:Node {id: 'E'}), + (f:Node {id: 'F'}), + (g:Node {id: 'G'}), + (a)-[:REL {weight: 1}]->(b), + (a)-[:REL {weight: 2}]->(c), + (b)-[:REL {weight: 1}]->(e), + (c)-[:REL {weight: 1}]->(e), + (a)-[:REL {weight: 3}]->(e), + (b)-[:REL {weight: 2}]->(d), + (d)-[:REL {weight: 1}]->(e), + (a)-[:REL {weight: 1}]->(f), + (f)-[:REL {weight: 1}]->(g), + (g)-[:REL {weight: 1}]->(e); + " echo "$create_graph_query" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test KShortest paths - find top 3 shortest paths from A to E" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest | 3]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test KShortest paths with path length bounds" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 2..4]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: KShortest paths - find top 3 shortest paths from A to E" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest | 3]->(n2) RETURN p;" \ + | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: KShortest paths - with path length bounds" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 2..4]->(n2) RETURN p;" \ + | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port echo "SUBFEATURE: Test KShortest paths with the bounds and limit" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 2..4 | 5]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test KShortest paths with node filtering" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) WHERE ALL(n IN nodes(p) WHERE n.id IN ['A', 'B', 'C', 'E']) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test KShortest paths with edge filtering" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) WHERE ALL(r IN relationships(p) WHERE r.weight <= 2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test KShortest paths with weighted edges (using weight property)" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) RETURN p, reduce(total = 0, r IN relationships(p) | total + r.weight) AS total_weight ORDER BY total_weight;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test KShortest paths with result ordering" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) RETURN p, length(p) AS path_length ORDER BY path_length;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test KShortest paths with null start/end nodes (should return empty set)" - echo "MATCH (n1:Node {id: 'X'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test KShortest paths with same start and end node (should return empty set)" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'A'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test KShortest paths with the LIMIT clause" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest]->(n2) RETURN p LIMIT 1000;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 2..4 | 5]->(n2) RETURN p;" \ + | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test AllShortest paths - find all shortest paths from A to E (with weight lambda)" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*AllShortest (r, n | r.weight)]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test AllShortest paths with the upper bound (with weight lambda)" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*AllShortest ..4 (r, n | r.weight)]->(n2) RETURN p;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SUBFEATURE: Test AllShortest paths getting the path length (with weight lambda)" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*AllShortest (r, n | r.weight)]->(n2) RETURN DISTINCT length(p) AS path_length ORDER BY path_length;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: AllShortest paths - find all shortest paths from A to E (with weight lambda)" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*AllShortest (r, n | r.weight)]->(n2) RETURN p;" \ + | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: AllShortest paths - with the upper bound and total_weight" + echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*AllShortest ..4 (r, n | r.weight) total_weight]->(n2) RETURN p, total_weight;" \ + | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: AllShortest paths - using weight lambda + total_weight + the filter" + echo "MATCH p=(n1:Node {id: 'A'})-[*AllShortest ..4 (r, n | r.weight) total_weight (r, n, p, w | r.weight > 0 AND length(p) > 0)]->(n2:Node {id: 'E'}) RETURN p;" \ + | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port echo "MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "KShortest and AllShortest paths testing completed successfully" + echo "Smoking Deep-path Traversal Capabilities DONE" + echo "" } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then diff --git a/smoke-release-testing/test_single_mage.bash b/smoke-release-testing/test_single_mage.bash index 457befa61..a0a40b778 100755 --- a/smoke-release-testing/test_single_mage.bash +++ b/smoke-release-testing/test_single_mage.bash @@ -43,6 +43,7 @@ test_monitoring $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_multi_tenancy $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_nested_indices $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_or_expression_for_labels $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +test_shortest_paths $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT # NOTE: If the testing container is NOT restarted, all the auth test have to # come after all tests that assume there are no users. test_impersonate_user $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT From 58d075bba2efbaae299fd64779d3aad7878c93c5 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sun, 17 Aug 2025 12:55:36 -0700 Subject: [PATCH 05/12] Add text search and the subset of the properties test --- smoke-release-testing/experiment.bash | 4 ++-- .../mgconsole/text_search.bash | 22 +++++++++++++++++++ smoke-release-testing/utils.bash | 2 +- 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 smoke-release-testing/mgconsole/text_search.bash diff --git a/smoke-release-testing/experiment.bash b/smoke-release-testing/experiment.bash index a8c1a6531..95383feed 100755 --- a/smoke-release-testing/experiment.bash +++ b/smoke-release-testing/experiment.bash @@ -10,8 +10,8 @@ echo "Waiting for memgraph to initialize..." wait_for_memgraph $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT echo "Memgraph is up and running!" -source ./mgconsole/shortest_paths.bash -test_shortest_paths $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +source ./mgconsole/text_search.bash +test_text_search $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT # NOTE: Test what's the exit status of the script by using `echo $?`: # * if it's == 0 -> all good diff --git a/smoke-release-testing/mgconsole/text_search.bash b/smoke-release-testing/mgconsole/text_search.bash new file mode 100644 index 000000000..23ee2d949 --- /dev/null +++ b/smoke-release-testing/mgconsole/text_search.bash @@ -0,0 +1,22 @@ +#!/bin/bash +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source "$SCRIPT_DIR/../utils.bash" + +test_text_search() { + __host="$1" + __port="$2" + echo "" + echo "FEATURE: Text Search" + + echo "CREATE TEXT INDEX index_name ON :Label(prop1, prop2, prop3);" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SHOW INDEX INFO;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + + echo "Text search and text property indices testing completed successfully" +} + +if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then + # NOTE: Take a look at session_trace.bash for the v1 implementation of binary-docker picker. + trap cleanup_memgraph_binary_processes EXIT # To make sure cleanup is done. + set -e # To make sure the script will return non-0 in case of a failure. + run_memgraph_binary_and_test "--log-level=TRACE --log-file=mg_test_text_search.logs" test_text_search +fi diff --git a/smoke-release-testing/utils.bash b/smoke-release-testing/utils.bash index ee1bafd20..83e33b339 100755 --- a/smoke-release-testing/utils.bash +++ b/smoke-release-testing/utils.bash @@ -44,7 +44,7 @@ check_dockerhub_images() { } check_dockerhub_images -MEMGRAPH_GENERAL_FLAGS="--telemetry-enabled=false --log-level=TRACE --also-log-to-stderr" +MEMGRAPH_GENERAL_FLAGS="--telemetry-enabled=false --log-level=TRACE --also-log-to-stderr --experimental-enabled=text-search" MEMGRAPH_ENTERPRISE_DOCKER_ENVS="-e MEMGRAPH_ENTERPRISE_LICENSE=$MEMGRAPH_ENTERPRISE_LICENSE -e MEMGRAPH_ORGANIZATION_NAME=$MEMGRAPH_ORGANIZATION_NAME" MEMGRAPH_DOCKER_MOUNT_VOLUME_FLAGS="-v mg_lib:/var/lib/memgraph" MEMGRAPH_FULL_PROPERTIES_SET="{id:0, name:\"tester\", age:37, height:175.0, merried:true}" From 2f12bf3fa9fef81f29951ec06d0dd4dff54e6bda Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sun, 17 Aug 2025 13:35:09 -0700 Subject: [PATCH 06/12] Add the durability test --- smoke-release-testing/experiment.bash | 4 ++-- .../mgconsole/durability.bash | 21 +++++++++++++++++++ smoke-release-testing/test_single_mage.bash | 3 +++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 smoke-release-testing/mgconsole/durability.bash diff --git a/smoke-release-testing/experiment.bash b/smoke-release-testing/experiment.bash index 95383feed..fdaad4568 100755 --- a/smoke-release-testing/experiment.bash +++ b/smoke-release-testing/experiment.bash @@ -10,8 +10,8 @@ echo "Waiting for memgraph to initialize..." wait_for_memgraph $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT echo "Memgraph is up and running!" -source ./mgconsole/text_search.bash -test_text_search $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +source ./mgconsole/durability.bash +test_durability $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT # NOTE: Test what's the exit status of the script by using `echo $?`: # * if it's == 0 -> all good diff --git a/smoke-release-testing/mgconsole/durability.bash b/smoke-release-testing/mgconsole/durability.bash new file mode 100644 index 000000000..012560b3b --- /dev/null +++ b/smoke-release-testing/mgconsole/durability.bash @@ -0,0 +1,21 @@ +#!/bin/bash +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source "$SCRIPT_DIR/../utils.bash" + +test_durability() { + __host="$1" + __port="$2" + echo "FEATURE: Durability and Persistence" + + echo "SUBFEATURE: Create snapshot query" + echo "CREATE SNAPSHOT;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + + echo "Durability testing completed successfully" +} + +if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then + # NOTE: Take a look at session_trace.bash for the v1 implementation of binary-docker picker. + trap cleanup_memgraph_binary_processes EXIT # To make sure cleanup is done. + set -e # To make sure the script will return non-0 in case of a failure. + run_memgraph_binary_and_test "--log-level=TRACE --log-file=mg_test_durability.logs" test_durability +fi diff --git a/smoke-release-testing/test_single_mage.bash b/smoke-release-testing/test_single_mage.bash index a0a40b778..5275cb29e 100755 --- a/smoke-release-testing/test_single_mage.bash +++ b/smoke-release-testing/test_single_mage.bash @@ -43,7 +43,10 @@ test_monitoring $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_multi_tenancy $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_nested_indices $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_or_expression_for_labels $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +# v3.5 testing. test_shortest_paths $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +test_text_search $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +test_durability $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT # NOTE: If the testing container is NOT restarted, all the auth test have to # come after all tests that assume there are no users. test_impersonate_user $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT From 7f0336f4353f4cdf3783509802bc5a3102419bab Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Tue, 19 Aug 2025 16:24:29 -0700 Subject: [PATCH 07/12] Add the WIP user profile (I think daily build still doesn't have the feature) --- smoke-release-testing/experiment.bash | 4 +- .../mgconsole/user_profiles.bash | 37 +++++++++++++++++++ smoke-release-testing/test_single_mage.bash | 1 + 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 smoke-release-testing/mgconsole/user_profiles.bash diff --git a/smoke-release-testing/experiment.bash b/smoke-release-testing/experiment.bash index fdaad4568..a98d49970 100755 --- a/smoke-release-testing/experiment.bash +++ b/smoke-release-testing/experiment.bash @@ -10,8 +10,8 @@ echo "Waiting for memgraph to initialize..." wait_for_memgraph $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT echo "Memgraph is up and running!" -source ./mgconsole/durability.bash -test_durability $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +source ./mgconsole/user_profiles.bash +test_user_profiles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT # NOTE: Test what's the exit status of the script by using `echo $?`: # * if it's == 0 -> all good diff --git a/smoke-release-testing/mgconsole/user_profiles.bash b/smoke-release-testing/mgconsole/user_profiles.bash new file mode 100644 index 000000000..c3e849cea --- /dev/null +++ b/smoke-release-testing/mgconsole/user_profiles.bash @@ -0,0 +1,37 @@ +#!/bin/bash +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source "$SCRIPT_DIR/../utils.bash" + +test_user_profiles() { + __host="$1" + __port="$2" + echo "FEATURE: User Profiles and Resource Limit Constraints" + + echo "SUBFEATURE: Setup test user and profile" + echo "CREATE USER test_user IDENTIFIED BY 'password123';" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "CREATE PROFILE user_profile LIMIT SESSIONS 2, TRANSACTIONS_MEMORY 10KB;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port --username test_user --password password123 + + # TODO(gitbuda): Assign the profile to the user. + # TODO(gitbuda): Show the profile. + + echo "SUBFEATURE: Test memory limit enforcement" + # Test query that should work within 10KB limit + echo "CREATE (n:TestNode {id: 1, data: 'small'});" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + # This one should fail. TODO: Check for it. + echo "UNWIND range(1, 10000) AS i CREATE (n:MemoryTest {id: i, data: 'Large data string that exceeds 10KB memory limit ' + i}) RETURN count(n);" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + + echo "SUBFEATURE: Cleanup test data (profile, user, data)" + echo "DROP USER test_user;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "DROP PROFILE test_profile;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "MATCH (n:TestNode) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "MATCH (n:MemoryTest) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + + echo "User profiles and resource limit constraints testing completed successfully" +} + +if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then + # NOTE: Take a look at session_trace.bash for the v1 implementation of binary-docker picker. + trap cleanup_memgraph_binary_processes EXIT # To make sure cleanup is done. + set -e # To make sure the script will return non-0 in case of a failure. + run_memgraph_binary_and_test "--log-level=TRACE --log-file=mg_test_user_profiles.logs" test_user_profiles +fi diff --git a/smoke-release-testing/test_single_mage.bash b/smoke-release-testing/test_single_mage.bash index 5275cb29e..88f90dbe1 100755 --- a/smoke-release-testing/test_single_mage.bash +++ b/smoke-release-testing/test_single_mage.bash @@ -50,3 +50,4 @@ test_durability $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT # NOTE: If the testing container is NOT restarted, all the auth test have to # come after all tests that assume there are no users. test_impersonate_user $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +test_user_profiles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT \ No newline at end of file From beb0f3eb9477f891f6d4f6d3f64cbde41a7ffcd3 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Thu, 21 Aug 2025 19:35:27 +0200 Subject: [PATCH 08/12] v1 of the meaningful profile test and start refactoring the auth setup --- .../mgconsole/auth_roles.bash | 8 +++--- .../mgconsole/impersonate.bash | 3 ++- .../mgconsole/user_profiles.bash | 26 +++++++++---------- smoke-release-testing/test_single_mage.bash | 13 ++++++++++ smoke-release-testing/utils.bash | 4 +++ 5 files changed, 37 insertions(+), 17 deletions(-) diff --git a/smoke-release-testing/mgconsole/auth_roles.bash b/smoke-release-testing/mgconsole/auth_roles.bash index 7cf24846c..8bd189303 100755 --- a/smoke-release-testing/mgconsole/auth_roles.bash +++ b/smoke-release-testing/mgconsole/auth_roles.bash @@ -3,18 +3,20 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_show_database_settings() { + # TODO(gitbuda): args became useless __host="$1" __port="$2" - echo "SHOW DATABASE SETTINGS;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SHOW DATABASE SETTINGS;" | $__mgconsole_admin } test_auth_roles() { + # TODO(gitbuda): args became useless __host="$1" __port="$2" echo "FEATURE: Auth Roles" - echo "CREATE ROLE IF NOT EXISTS test_reader;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SHOW ROLES;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "CREATE ROLE IF NOT EXISTS test_reader;" | $__mgconsole_admin + echo "SHOW ROLES;" | $__mgconsole_admin } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then diff --git a/smoke-release-testing/mgconsole/impersonate.bash b/smoke-release-testing/mgconsole/impersonate.bash index d3ca53eb5..3daea6a95 100755 --- a/smoke-release-testing/mgconsole/impersonate.bash +++ b/smoke-release-testing/mgconsole/impersonate.bash @@ -3,9 +3,10 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_impersonate_user() { + # TODO(gitbuda): args became useless __host="$1" __port="$2" echo "FEATURE: Impersonate User" - echo "CREATE USER admin; GRANT IMPERSONATE_USER * TO admin;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "GRANT IMPERSONATE_USER * TO admin;" | $__mgconsole_admin } diff --git a/smoke-release-testing/mgconsole/user_profiles.bash b/smoke-release-testing/mgconsole/user_profiles.bash index c3e849cea..9bc6031c1 100644 --- a/smoke-release-testing/mgconsole/user_profiles.bash +++ b/smoke-release-testing/mgconsole/user_profiles.bash @@ -8,23 +8,23 @@ test_user_profiles() { echo "FEATURE: User Profiles and Resource Limit Constraints" echo "SUBFEATURE: Setup test user and profile" - echo "CREATE USER test_user IDENTIFIED BY 'password123';" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "CREATE PROFILE user_profile LIMIT SESSIONS 2, TRANSACTIONS_MEMORY 10KB;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port --username test_user --password password123 - - # TODO(gitbuda): Assign the profile to the user. - # TODO(gitbuda): Show the profile. + echo "CREATE PROFILE user_profile LIMIT SESSIONS 2, TRANSACTIONS_MEMORY 100KB;" | $__mgconsole_admin + echo "SET PROFILE FOR tester TO user_profile;" | $__mgconsole_admin + echo "SHOW PROFILE FOR tester;" | $__mgconsole_admin echo "SUBFEATURE: Test memory limit enforcement" # Test query that should work within 10KB limit - echo "CREATE (n:TestNode {id: 1, data: 'small'});" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - # This one should fail. TODO: Check for it. - echo "UNWIND range(1, 10000) AS i CREATE (n:MemoryTest {id: i, data: 'Large data string that exceeds 10KB memory limit ' + i}) RETURN count(n);" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "CREATE (n:TestNode {id: 1, data: 'small'});" | $__mgconsole_tester + # This one should fail. Check for failure and continue only if it fails. + if ! echo "UNWIND range(1, 10000) AS i CREATE (n:MemoryTest {id: i, data: 'Data string ' + i}) RETURN count(n);" | $__mgconsole_tester; then + echo "Memory limit enforcement by profile test failed as expected." + fi - echo "SUBFEATURE: Cleanup test data (profile, user, data)" - echo "DROP USER test_user;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "DROP PROFILE test_profile;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "MATCH (n:TestNode) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "MATCH (n:MemoryTest) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "SUBFEATURE: Cleanup profile" + echo "DROP PROFILE user_profile;" | $__mgconsole_admin + echo "SHOW PROFILES;" | $__mgconsole_admin + echo "MATCH (n:TestNode) DETACH DELETE n;" | $__mgconsole_admin + echo "MATCH (n:MemoryTest) DETACH DELETE n;" | $__mgconsole_admin echo "User profiles and resource limit constraints testing completed successfully" } diff --git a/smoke-release-testing/test_single_mage.bash b/smoke-release-testing/test_single_mage.bash index 88f90dbe1..76c313de0 100755 --- a/smoke-release-testing/test_single_mage.bash +++ b/smoke-release-testing/test_single_mage.bash @@ -43,11 +43,24 @@ test_monitoring $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_multi_tenancy $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_nested_indices $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_or_expression_for_labels $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT + # v3.5 testing. test_shortest_paths $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_text_search $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_durability $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT + # NOTE: If the testing container is NOT restarted, all the auth test have to # come after all tests that assume there are no users. + +# TODO(gitbuda): Probably more to the utils somewhere. +echo "CREATE USER admin IDENTIFIED BY 'admin1234'; GRANT ALL PRIVILEGES TO admin;" | $__mgconsole_default +echo "CREATE USER tester IDENTIFIED BY 'tester1234'; GRANT CREATE TO tester; GRANT CREATE_DELETE ON LABELS * TO tester; GRANT DATABASE memgraph TO tester;" | $__mgconsole_admin + +# TODO(gitbuda): Ask Andreja why the below doesn't work :thinking: +# echo "CREATE USER tester IDENTIFIED BY 'tester1234';" $__mgconsole_admin +# echo "GRANT CREATE TO tester; GRANT CREATE_DELETE ON LABELS * TO tester; GRANT DATABASE memgraph TO tester;" | $__mgconsole_admin + +test_show_database_settings $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +test_auth_roles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_impersonate_user $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT test_user_profiles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT \ No newline at end of file diff --git a/smoke-release-testing/utils.bash b/smoke-release-testing/utils.bash index 83e33b339..f1c517f06 100755 --- a/smoke-release-testing/utils.bash +++ b/smoke-release-testing/utils.bash @@ -61,6 +61,10 @@ MEMGRAPH_NEXT_COORDINATOR_BOLT_PORT="8003" MEMGRAPH_LAST_MONITORING_PORT="9001" MEMGRAPH_NEXT_MONITORING_PORT="9002" +__mgconsole_default="$MEMGRAPH_CONSOLE_BINARY --host $MEMGRAPH_DEFAULT_HOST --port $MEMGRAPH_NEXT_DATA_BOLT_PORT" +__mgconsole_admin="$MEMGRAPH_CONSOLE_BINARY --host $MEMGRAPH_DEFAULT_HOST --port $MEMGRAPH_NEXT_DATA_BOLT_PORT --username admin --password admin1234" +__mgconsole_tester="$MEMGRAPH_CONSOLE_BINARY --host $MEMGRAPH_DEFAULT_HOST --port $MEMGRAPH_NEXT_DATA_BOLT_PORT --username tester --password tester1234" + wait_port() { __port="$1" while ! nc -z localhost $__port; do From d0581a797932d8e5afc77ae5377f7cb2f25c2140 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sat, 23 Aug 2025 17:47:16 +0200 Subject: [PATCH 09/12] Add cleanup and small improvements (WIP) --- smoke-release-testing/experiment.bash | 2 +- .../mgconsole/auth_roles.bash | 38 +++---------------- .../mgconsole/impersonate.bash | 6 +-- smoke-release-testing/mgconsole/indices.bash | 19 +++++----- .../mgconsole/user_profiles.bash | 19 +++++----- smoke-release-testing/test_ha_memgraph.bash | 2 + smoke-release-testing/test_single_mage.bash | 20 +++++----- smoke-release-testing/utils.bash | 6 +-- 8 files changed, 40 insertions(+), 72 deletions(-) diff --git a/smoke-release-testing/experiment.bash b/smoke-release-testing/experiment.bash index a98d49970..84ca44e8d 100755 --- a/smoke-release-testing/experiment.bash +++ b/smoke-release-testing/experiment.bash @@ -5,7 +5,7 @@ source "$SCRIPT_DIR/utils.bash" # NOTE: Use the below line if you just want to spin up the containers and leave them running. # run_memgraph_docker_containers RC RC # NOTE: Use the below line if you want to cleanup the containers after run of this script. -spinup_and_cleanup_memgraph_dockers Dockerhub RC +spinup_and_cleanup_memgraph_dockers none none echo "Waiting for memgraph to initialize..." wait_for_memgraph $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT echo "Memgraph is up and running!" diff --git a/smoke-release-testing/mgconsole/auth_roles.bash b/smoke-release-testing/mgconsole/auth_roles.bash index 8bd189303..e50b1382f 100755 --- a/smoke-release-testing/mgconsole/auth_roles.bash +++ b/smoke-release-testing/mgconsole/auth_roles.bash @@ -3,44 +3,16 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_show_database_settings() { - # TODO(gitbuda): args became useless - __host="$1" - __port="$2" - echo "SHOW DATABASE SETTINGS;" | $__mgconsole_admin + echo "FEATURE: Show Database Settings" + echo "SHOW DATABASE SETTINGS;" | $MGCONSOLE_NEXT_ADMIN } test_auth_roles() { - # TODO(gitbuda): args became useless - __host="$1" - __port="$2" echo "FEATURE: Auth Roles" - - echo "CREATE ROLE IF NOT EXISTS test_reader;" | $__mgconsole_admin - echo "SHOW ROLES;" | $__mgconsole_admin + echo "CREATE ROLE IF NOT EXISTS test_reader;" | $MGCONSOLE_NEXT_ADMIN + echo "SHOW ROLES;" | $MGCONSOLE_NEXT_ADMIN } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then - # NOTE: Take a look at session_trace.bash for the v1 implementation of binary-docker picker. - trap cleanup_memgraph_binary_processes EXIT # To make sure cleanup is done. - set -e # To make sure the script will return non-0 in case of a failure. - - # NOTE: If you want to run custom memgraph binary just set MEMGRAPH_BUILD_PATH to your memgraph build directory. - run_memgraph_binary "--bolt-port $MEMGRAPH_DEFAULT_PORT --log-level=TRACE --log-file=mg_test_auth_roles_enterprise.logs --data-directory=test_auth_roles_enterprise" - wait_for_memgraph $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_DEFAULT_PORT - # test_show_database_settings $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_DEFAULT_PORT - test_auth_roles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_DEFAULT_PORT - cleanup_memgraph_binary_processes - - rm -rf $MG_BUILD_PATH/test_auth_roles_enterprise/auth - ORIG_MEMGRAPH_ENTEPRISE_LICENSE="$MEMGRAPH_ENTERPRISE_LICENSE" - ORIG_MEMGRAPH_ORGANIZATION_NAME="$MEMGRAPH_ORGANIZATION_NAME" - unset MEMGRAPH_ENTERPRISE_LICENSE - unset MEMGRAPH_ORGANIZATION_NAME - # NOTE: License is not stored in settings. - run_memgraph_binary "--bolt-port 7688 --log-level=TRACE --log-file=mg_test_auth_roles_community.logs --data-directory=test_auth_roles_enterprise" - wait_for_memgraph $MEMGRAPH_DEFAULT_HOST 7688 - # test_show_database_settings $MEMGRAPH_DEFAULT_HOST 7688 - test_auth_roles $MEMGRAPH_DEFAULT_HOST 7688 - export MEMGRAPH_ENTERPRISE_LICENSE="$ORIG_MEMGRAPH_ENTEPRISE_LICENSE" - export MEMGRAPH_ORGANIZATION_NAME="$ORIG_MEMGRAPH_ORGANIZATION_NAME" + echo "pass" fi diff --git a/smoke-release-testing/mgconsole/impersonate.bash b/smoke-release-testing/mgconsole/impersonate.bash index 3daea6a95..19ef1183b 100755 --- a/smoke-release-testing/mgconsole/impersonate.bash +++ b/smoke-release-testing/mgconsole/impersonate.bash @@ -3,10 +3,6 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_impersonate_user() { - # TODO(gitbuda): args became useless - __host="$1" - __port="$2" echo "FEATURE: Impersonate User" - - echo "GRANT IMPERSONATE_USER * TO admin;" | $__mgconsole_admin + echo "GRANT IMPERSONATE_USER * TO admin;" | $MGCONSOLE_NEXT_ADMIN } diff --git a/smoke-release-testing/mgconsole/indices.bash b/smoke-release-testing/mgconsole/indices.bash index fd8c1bb10..2ef230a6f 100755 --- a/smoke-release-testing/mgconsole/indices.bash +++ b/smoke-release-testing/mgconsole/indices.bash @@ -3,22 +3,21 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_composite_indices() { - __host="$1" - __port="$2" echo "FEATURE: Label Property Composit Index" - echo "CREATE INDEX ON :Label(prop1, prop2);" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "CREATE (:Label {prop1:0, prop2: 1});" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "EXPLAIN MATCH (n:Label {prop1:0, prop2: 1}) RETURN n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port | grep -E "ScanAllByLabelProperties \(n :Label \{prop1, prop2\}\)" + echo "CREATE INDEX ON :Label(prop1, prop2);" | $MGCONSOLE_NEXT_DEFAULT + echo "CREATE (:Label {prop1:0, prop2: 1});" | $MGCONSOLE_NEXT_DEFAULT + echo "EXPLAIN MATCH (n:Label {prop1:0, prop2: 1}) RETURN n;" | $MGCONSOLE_NEXT_DEFAULT | grep -E "ScanAllByLabelProperties \(n :Label \{prop1, prop2\}\)" + + echo "SHOW INDEXES;" | $MGCONSOLE_NEXT_DEFAULT } test_nested_indices() { - __host="$1" - __port="$2" echo "FEATURE: Nested Indices" - echo "CREATE INDEX ON :Project(delivery.status.due_date);" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "CREATE (:Project {delivery: {status: {due_date: date('2025-06-04'), milestone: 'v3.14'}}});" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "EXPLAIN MATCH (proj:Project) WHERE proj.delivery.status.due_date = date('2025-06-04') RETURN *;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port | grep -E "ScanAllByLabelProperties" + echo "CREATE INDEX ON :Project(delivery.status.due_date);" | $MGCONSOLE_NEXT_DEFAULT + echo "CREATE (:Project {delivery: {status: {due_date: date('2025-06-04'), milestone: 'v3.14'}}});" | $MGCONSOLE_NEXT_DEFAULT + echo "EXPLAIN MATCH (proj:Project) WHERE proj.delivery.status.due_date = date('2025-06-04') RETURN *;" | $MGCONSOLE_NEXT_DEFAULT | grep -E "ScanAllByLabelProperties" + echo "SHOW INDEXES;" | $MGCONSOLE_NEXT_DEFAULT } diff --git a/smoke-release-testing/mgconsole/user_profiles.bash b/smoke-release-testing/mgconsole/user_profiles.bash index 9bc6031c1..681881e0a 100644 --- a/smoke-release-testing/mgconsole/user_profiles.bash +++ b/smoke-release-testing/mgconsole/user_profiles.bash @@ -3,28 +3,29 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_user_profiles() { + # TODO(gitbuda): args became useless -> NOTE: running this test alone still depends to make this args work -> FIX. __host="$1" __port="$2" echo "FEATURE: User Profiles and Resource Limit Constraints" echo "SUBFEATURE: Setup test user and profile" - echo "CREATE PROFILE user_profile LIMIT SESSIONS 2, TRANSACTIONS_MEMORY 100KB;" | $__mgconsole_admin - echo "SET PROFILE FOR tester TO user_profile;" | $__mgconsole_admin - echo "SHOW PROFILE FOR tester;" | $__mgconsole_admin + echo "CREATE PROFILE user_profile LIMIT SESSIONS 2, TRANSACTIONS_MEMORY 100KB;" | $MGCONSOLE_NEXT_ADMIN + echo "SET PROFILE FOR tester TO user_profile;" | $MGCONSOLE_NEXT_ADMIN + echo "SHOW PROFILE FOR tester;" | $MGCONSOLE_NEXT_ADMIN echo "SUBFEATURE: Test memory limit enforcement" # Test query that should work within 10KB limit - echo "CREATE (n:TestNode {id: 1, data: 'small'});" | $__mgconsole_tester + echo "CREATE (n:TestNode {id: 1, data: 'small'});" | $MGCONSOLE_NEXT_TESTER # This one should fail. Check for failure and continue only if it fails. - if ! echo "UNWIND range(1, 10000) AS i CREATE (n:MemoryTest {id: i, data: 'Data string ' + i}) RETURN count(n);" | $__mgconsole_tester; then + if ! echo "UNWIND range(1, 10000) AS i CREATE (n:MemoryTest {id: i, data: 'Data string ' + i}) RETURN count(n);" | $MGCONSOLE_NEXT_TESTER; then echo "Memory limit enforcement by profile test failed as expected." fi echo "SUBFEATURE: Cleanup profile" - echo "DROP PROFILE user_profile;" | $__mgconsole_admin - echo "SHOW PROFILES;" | $__mgconsole_admin - echo "MATCH (n:TestNode) DETACH DELETE n;" | $__mgconsole_admin - echo "MATCH (n:MemoryTest) DETACH DELETE n;" | $__mgconsole_admin + echo "DROP PROFILE user_profile;" | $MGCONSOLE_NEXT_ADMIN + echo "SHOW PROFILES;" | $MGCONSOLE_NEXT_ADMIN + echo "MATCH (n:TestNode) DETACH DELETE n;" | $MGCONSOLE_NEXT_ADMIN + echo "MATCH (n:MemoryTest) DETACH DELETE n;" | $MGCONSOLE_NEXT_ADMIN echo "User profiles and resource limit constraints testing completed successfully" } diff --git a/smoke-release-testing/test_ha_memgraph.bash b/smoke-release-testing/test_ha_memgraph.bash index 50df4a3c2..dd5a13959 100755 --- a/smoke-release-testing/test_ha_memgraph.bash +++ b/smoke-release-testing/test_ha_memgraph.bash @@ -2,6 +2,8 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/utils.bash" +pull_docker_images none none + source $SCRIPT_DIR/k8s/run.bash cleanup_k8s_all diff --git a/smoke-release-testing/test_single_mage.bash b/smoke-release-testing/test_single_mage.bash index 76c313de0..9fd93113f 100755 --- a/smoke-release-testing/test_single_mage.bash +++ b/smoke-release-testing/test_single_mage.bash @@ -1,4 +1,4 @@ -#!/bin/bash -e +#!/bin/bash -ex SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/utils.bash" @@ -52,15 +52,13 @@ test_durability $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT # NOTE: If the testing container is NOT restarted, all the auth test have to # come after all tests that assume there are no users. -# TODO(gitbuda): Probably more to the utils somewhere. -echo "CREATE USER admin IDENTIFIED BY 'admin1234'; GRANT ALL PRIVILEGES TO admin;" | $__mgconsole_default -echo "CREATE USER tester IDENTIFIED BY 'tester1234'; GRANT CREATE TO tester; GRANT CREATE_DELETE ON LABELS * TO tester; GRANT DATABASE memgraph TO tester;" | $__mgconsole_admin +echo "CREATE USER admin IDENTIFIED BY 'admin1234'; GRANT ALL PRIVILEGES TO admin;" | $MGCONSOLE_NEXT_DEFAULT +echo "CREATE USER tester IDENTIFIED BY 'tester1234'; GRANT CREATE TO tester; GRANT CREATE_DELETE ON LABELS * TO tester; GRANT DATABASE memgraph TO tester;" | $MGCONSOLE_NEXT_ADMIN +echo "SHOW USERS;" | $MGCONSOLE_NEXT_ADMIN +echo "SHOW ACTIVE USERS;" | $MGCONSOLE_NEXT_ADMIN +echo "NOTE: admin and tester users are created for testing purposes." -# TODO(gitbuda): Ask Andreja why the below doesn't work :thinking: -# echo "CREATE USER tester IDENTIFIED BY 'tester1234';" $__mgconsole_admin -# echo "GRANT CREATE TO tester; GRANT CREATE_DELETE ON LABELS * TO tester; GRANT DATABASE memgraph TO tester;" | $__mgconsole_admin - -test_show_database_settings $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_auth_roles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_impersonate_user $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +test_show_database_settings +test_auth_roles +test_impersonate_user test_user_profiles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT \ No newline at end of file diff --git a/smoke-release-testing/utils.bash b/smoke-release-testing/utils.bash index f1c517f06..b8316679e 100755 --- a/smoke-release-testing/utils.bash +++ b/smoke-release-testing/utils.bash @@ -61,9 +61,9 @@ MEMGRAPH_NEXT_COORDINATOR_BOLT_PORT="8003" MEMGRAPH_LAST_MONITORING_PORT="9001" MEMGRAPH_NEXT_MONITORING_PORT="9002" -__mgconsole_default="$MEMGRAPH_CONSOLE_BINARY --host $MEMGRAPH_DEFAULT_HOST --port $MEMGRAPH_NEXT_DATA_BOLT_PORT" -__mgconsole_admin="$MEMGRAPH_CONSOLE_BINARY --host $MEMGRAPH_DEFAULT_HOST --port $MEMGRAPH_NEXT_DATA_BOLT_PORT --username admin --password admin1234" -__mgconsole_tester="$MEMGRAPH_CONSOLE_BINARY --host $MEMGRAPH_DEFAULT_HOST --port $MEMGRAPH_NEXT_DATA_BOLT_PORT --username tester --password tester1234" +MGCONSOLE_NEXT_DEFAULT="$MEMGRAPH_CONSOLE_BINARY --host $MEMGRAPH_DEFAULT_HOST --port $MEMGRAPH_NEXT_DATA_BOLT_PORT" +MGCONSOLE_NEXT_ADMIN="$MEMGRAPH_CONSOLE_BINARY --host $MEMGRAPH_DEFAULT_HOST --port $MEMGRAPH_NEXT_DATA_BOLT_PORT --username admin --password admin1234" +MGCONSOLE_NEXT_TESTER="$MEMGRAPH_CONSOLE_BINARY --host $MEMGRAPH_DEFAULT_HOST --port $MEMGRAPH_NEXT_DATA_BOLT_PORT --username tester --password tester1234" wait_port() { __port="$1" From d9d8d2dc6f3251f3adfe231c87450f8acb202e30 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sat, 23 Aug 2025 17:50:25 +0200 Subject: [PATCH 10/12] Remove leftover -x --- smoke-release-testing/test_single_mage.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/smoke-release-testing/test_single_mage.bash b/smoke-release-testing/test_single_mage.bash index 9fd93113f..0dcfcee0e 100755 --- a/smoke-release-testing/test_single_mage.bash +++ b/smoke-release-testing/test_single_mage.bash @@ -1,4 +1,4 @@ -#!/bin/bash -ex +#!/bin/bash -e SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/utils.bash" @@ -61,4 +61,4 @@ echo "NOTE: admin and tester users are created for testing purposes." test_show_database_settings test_auth_roles test_impersonate_user -test_user_profiles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT \ No newline at end of file +test_user_profiles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT From b94446169f9bbc785da9ac580687db5f465f7d65 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sun, 24 Aug 2025 12:47:47 +0200 Subject: [PATCH 11/12] Add a bunch of overall improvements --- .../mgconsole/auth_roles.bash | 7 +- .../mgconsole/basic_auth.bash | 5 +- .../mgconsole/durability.bash | 4 +- .../mgconsole/dynamic_algos.bash | 5 +- .../mgconsole/edge_type_operations.bash | 5 +- .../mgconsole/expressions.bash | 5 +- .../mgconsole/functions.bash | 9 +- smoke-release-testing/mgconsole/ha.bash | 19 ----- .../mgconsole/impersonate.bash | 2 +- smoke-release-testing/mgconsole/indices.bash | 20 ++--- .../mgconsole/label_operations.bash | 5 +- .../mgconsole/monitoring.bash | 3 - .../mgconsole/multi_tenancy.bash | 5 +- smoke-release-testing/mgconsole/query.bash | 12 ++- .../mgconsole/query_modules.bash | 11 +-- smoke-release-testing/mgconsole/regex.bash | 10 +-- .../mgconsole/session_trace.bash | 11 +-- .../mgconsole/shortest_paths.bash | 28 ++----- .../mgconsole/show_schema.bash | 9 +- smoke-release-testing/mgconsole/spatial.bash | 14 ++-- smoke-release-testing/mgconsole/storage.bash | 8 +- smoke-release-testing/mgconsole/streams.bash | 7 +- smoke-release-testing/mgconsole/template.bash | 6 +- .../mgconsole/text_search.bash | 9 +- smoke-release-testing/mgconsole/ttl.bash | 7 +- .../mgconsole/type_constraints.bash | 8 +- .../mgconsole/user_profiles.bash | 23 +++-- .../mgconsole/vector_search.bash | 14 ++-- smoke-release-testing/test_single_mage.bash | 84 +++++++++++-------- smoke-release-testing/utils.bash | 34 ++++++-- 30 files changed, 160 insertions(+), 229 deletions(-) delete mode 100755 smoke-release-testing/mgconsole/ha.bash diff --git a/smoke-release-testing/mgconsole/auth_roles.bash b/smoke-release-testing/mgconsole/auth_roles.bash index e50b1382f..726af9f69 100755 --- a/smoke-release-testing/mgconsole/auth_roles.bash +++ b/smoke-release-testing/mgconsole/auth_roles.bash @@ -4,15 +4,16 @@ source "$SCRIPT_DIR/../utils.bash" test_show_database_settings() { echo "FEATURE: Show Database Settings" - echo "SHOW DATABASE SETTINGS;" | $MGCONSOLE_NEXT_ADMIN + run_next_admin "SHOW DATABASE SETTINGS;" } test_auth_roles() { echo "FEATURE: Auth Roles" - echo "CREATE ROLE IF NOT EXISTS test_reader;" | $MGCONSOLE_NEXT_ADMIN - echo "SHOW ROLES;" | $MGCONSOLE_NEXT_ADMIN + run_next_admin "CREATE ROLE IF NOT EXISTS test_reader;" + run_next_admin "SHOW ROLES;" } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then + # A place to run tests using memgraph binary and debug issues directly. echo "pass" fi diff --git a/smoke-release-testing/mgconsole/basic_auth.bash b/smoke-release-testing/mgconsole/basic_auth.bash index 75b29705b..250b66fd7 100755 --- a/smoke-release-testing/mgconsole/basic_auth.bash +++ b/smoke-release-testing/mgconsole/basic_auth.bash @@ -3,11 +3,8 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_basic_auth() { - __host="$1" - __port="$2" echo "FEATURE: Basic Authentication" - - echo "SHOW ACTIVE USERS INFO;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "SHOW ACTIVE USERS INFO;" } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then diff --git a/smoke-release-testing/mgconsole/durability.bash b/smoke-release-testing/mgconsole/durability.bash index 012560b3b..f3c5b84bb 100644 --- a/smoke-release-testing/mgconsole/durability.bash +++ b/smoke-release-testing/mgconsole/durability.bash @@ -3,12 +3,10 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_durability() { - __host="$1" - __port="$2" echo "FEATURE: Durability and Persistence" echo "SUBFEATURE: Create snapshot query" - echo "CREATE SNAPSHOT;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "CREATE SNAPSHOT;" echo "Durability testing completed successfully" } diff --git a/smoke-release-testing/mgconsole/dynamic_algos.bash b/smoke-release-testing/mgconsole/dynamic_algos.bash index 94ec84910..1cc8298e4 100755 --- a/smoke-release-testing/mgconsole/dynamic_algos.bash +++ b/smoke-release-testing/mgconsole/dynamic_algos.bash @@ -3,9 +3,6 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_dynamic_algos() { - __host="$1" - __port="$2" echo "FEATURE: Dynamic Algorithms" - - echo "CALL mg.procedures() YIELD name;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port | grep "online" + run_next "CALL mg.procedures() YIELD name;" | grep "online" } diff --git a/smoke-release-testing/mgconsole/edge_type_operations.bash b/smoke-release-testing/mgconsole/edge_type_operations.bash index 13bcb5579..a2676e083 100755 --- a/smoke-release-testing/mgconsole/edge_type_operations.bash +++ b/smoke-release-testing/mgconsole/edge_type_operations.bash @@ -3,9 +3,6 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_edge_type_operations() { - __host="$1" - __port="$2" echo "FEATURE: Edge Type Operations" - - echo "WITH {my_edge_type: \"KNOWS\"} as x CREATE ()-[:x.my_edge_type]->() RETURN x; MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "WITH {my_edge_type: \"KNOWS\"} as x CREATE ()-[:x.my_edge_type]->() RETURN x; MATCH (n) DETACH DELETE n;" } diff --git a/smoke-release-testing/mgconsole/expressions.bash b/smoke-release-testing/mgconsole/expressions.bash index f016b8217..16ad4a3b7 100755 --- a/smoke-release-testing/mgconsole/expressions.bash +++ b/smoke-release-testing/mgconsole/expressions.bash @@ -3,11 +3,8 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_or_expression_for_labels() { - __host="$1" - __port="$2" echo "FEATURE: OR expression for labels" - - echo "EXPLAIN MATCH (n:Label1|Label2) RETURN n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "EXPLAIN MATCH (n:Label1|Label2) RETURN n;" } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then diff --git a/smoke-release-testing/mgconsole/functions.bash b/smoke-release-testing/mgconsole/functions.bash index bea1ac9f0..0ba5620fd 100755 --- a/smoke-release-testing/mgconsole/functions.bash +++ b/smoke-release-testing/mgconsole/functions.bash @@ -3,12 +3,9 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_functions() { - __host="$1" - __port="$2" echo "FEATURE: Built-in functions" - # Added in v3.1. - echo "RETURN toSet([1, 2, 1]) AS a;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "RETURN length([1,2,3]) AS a;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "CREATE (a), (b), (a)-[c:Type]->(b) RETURN project([a,b], [c]) AS x; MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "RETURN toSet([1, 2, 1]) AS a;" + run_next "RETURN length([1, 2, 3]) AS a;" + run_next "CREATE (a), (b), (a)-[c:Type]->(b) RETURN project([a,b], [c]) AS x; MATCH (n) DETACH DELETE n;" } diff --git a/smoke-release-testing/mgconsole/ha.bash b/smoke-release-testing/mgconsole/ha.bash deleted file mode 100755 index cf4d45718..000000000 --- a/smoke-release-testing/mgconsole/ha.bash +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -source "$SCRIPT_DIR/../utils.bash" - -test_ha_under_k8s() { - __host="$1" - __port="$2" - echo "FEATURE: High-availability Automatic Failover" - - echo "SHOW INSTANCES;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port -} - -if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then - # NOTE: Take a look at session_trace.bash for the v1 implementation of binary-docker picker. - # TODO(gitbuda): Run HA cluster here (at the moment manually run k8s.bash). - # TODO(gitbuda): Figure out how to properly port forward from the bash script. - # kubectl port-forward memgraph-coordinator-1-0 10000:7687 & - test_ha_under_k8s localhost 10000 -fi diff --git a/smoke-release-testing/mgconsole/impersonate.bash b/smoke-release-testing/mgconsole/impersonate.bash index 19ef1183b..016761c7b 100755 --- a/smoke-release-testing/mgconsole/impersonate.bash +++ b/smoke-release-testing/mgconsole/impersonate.bash @@ -4,5 +4,5 @@ source "$SCRIPT_DIR/../utils.bash" test_impersonate_user() { echo "FEATURE: Impersonate User" - echo "GRANT IMPERSONATE_USER * TO admin;" | $MGCONSOLE_NEXT_ADMIN + run_next_admin "GRANT IMPERSONATE_USER * TO admin;" } diff --git a/smoke-release-testing/mgconsole/indices.bash b/smoke-release-testing/mgconsole/indices.bash index 2ef230a6f..f6854649b 100755 --- a/smoke-release-testing/mgconsole/indices.bash +++ b/smoke-release-testing/mgconsole/indices.bash @@ -4,20 +4,16 @@ source "$SCRIPT_DIR/../utils.bash" test_composite_indices() { echo "FEATURE: Label Property Composit Index" - - echo "CREATE INDEX ON :Label(prop1, prop2);" | $MGCONSOLE_NEXT_DEFAULT - echo "CREATE (:Label {prop1:0, prop2: 1});" | $MGCONSOLE_NEXT_DEFAULT - echo "EXPLAIN MATCH (n:Label {prop1:0, prop2: 1}) RETURN n;" | $MGCONSOLE_NEXT_DEFAULT | grep -E "ScanAllByLabelProperties \(n :Label \{prop1, prop2\}\)" - - echo "SHOW INDEXES;" | $MGCONSOLE_NEXT_DEFAULT + run_next "CREATE INDEX ON :Label(prop1, prop2);" + run_next "CREATE (:Label {prop1:0, prop2: 1});" + run_next "EXPLAIN MATCH (n:Label {prop1:0, prop2: 1}) RETURN n;" | grep -E "ScanAllByLabelProperties \(n :Label \{prop1, prop2\}\)" + run_next "SHOW INDEXES;" } test_nested_indices() { echo "FEATURE: Nested Indices" - - echo "CREATE INDEX ON :Project(delivery.status.due_date);" | $MGCONSOLE_NEXT_DEFAULT - echo "CREATE (:Project {delivery: {status: {due_date: date('2025-06-04'), milestone: 'v3.14'}}});" | $MGCONSOLE_NEXT_DEFAULT - echo "EXPLAIN MATCH (proj:Project) WHERE proj.delivery.status.due_date = date('2025-06-04') RETURN *;" | $MGCONSOLE_NEXT_DEFAULT | grep -E "ScanAllByLabelProperties" - - echo "SHOW INDEXES;" | $MGCONSOLE_NEXT_DEFAULT + run_next "CREATE INDEX ON :Project(delivery.status.due_date);" + run_next "CREATE (:Project {delivery: {status: {due_date: date('2025-06-04'), milestone: 'v3.14'}}});" + run_next "EXPLAIN MATCH (proj:Project) WHERE proj.delivery.status.due_date = date('2025-06-04') RETURN *;" | grep -E "ScanAllByLabelProperties" + run_next "SHOW INDEXES;" } diff --git a/smoke-release-testing/mgconsole/label_operations.bash b/smoke-release-testing/mgconsole/label_operations.bash index c1f6d3fc3..d94a7797a 100755 --- a/smoke-release-testing/mgconsole/label_operations.bash +++ b/smoke-release-testing/mgconsole/label_operations.bash @@ -3,9 +3,6 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_label_operations() { - __host="$1" - __port="$2" echo "FEATURE: Label Operations" - - echo "WITH {my_labels: [\"Label1\", \"Label2\"]} as x CREATE (n:x.my_labels) RETURN n; MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "WITH {my_labels: [\"Label1\", \"Label2\"]} as x CREATE (n:x.my_labels) RETURN n; MATCH (n) DETACH DELETE n;" } diff --git a/smoke-release-testing/mgconsole/monitoring.bash b/smoke-release-testing/mgconsole/monitoring.bash index c31ce1d68..137a270b1 100755 --- a/smoke-release-testing/mgconsole/monitoring.bash +++ b/smoke-release-testing/mgconsole/monitoring.bash @@ -3,10 +3,7 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_monitoring() { - __host="$1" - __port="$2" echo "FEATURE: Monitoring" - response=$(curl -X GET "http://localhost:$MEMGRAPH_NEXT_MONITORING_PORT/metrics") if ! echo "$response" | jq -e '.General | has("vertex_count")'; then echo "Monitoring data is missing vertex count." diff --git a/smoke-release-testing/mgconsole/multi_tenancy.bash b/smoke-release-testing/mgconsole/multi_tenancy.bash index b02d65563..40e10df5d 100644 --- a/smoke-release-testing/mgconsole/multi_tenancy.bash +++ b/smoke-release-testing/mgconsole/multi_tenancy.bash @@ -3,9 +3,6 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_multi_tenancy() { - __host="$1" - __port="$2" echo "FEATURE: Multi-tenancy basic check" - - echo "SHOW DATABASES;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "SHOW DATABASES;" } diff --git a/smoke-release-testing/mgconsole/query.bash b/smoke-release-testing/mgconsole/query.bash index 6e0274947..aad070a42 100755 --- a/smoke-release-testing/mgconsole/query.bash +++ b/smoke-release-testing/mgconsole/query.bash @@ -3,16 +3,14 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_query() { - __host="$1" - __port="$2" echo "FEATURE: Cypher query engine" echo "SUBFEATURE: Peridic commit" - echo "MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "UNWIND range(1, 10) as x CALL { WITH x CREATE (n:Label {id: x}) RETURN n } IN TRANSACTIONS OF 1 ROWS;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "MATCH (n) RETURN n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "USING PERIODIC COMMIT 1 MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "MATCH (n) RETURN n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "MATCH (n) DETACH DELETE n;" + run_next "UNWIND range(1, 10) as x CALL { WITH x CREATE (n:Label {id: x}) RETURN n } IN TRANSACTIONS OF 1 ROWS;" + run_next "MATCH (n) RETURN n;" + run_next "USING PERIODIC COMMIT 1 MATCH (n) DETACH DELETE n;" + run_next "MATCH (n) RETURN n;" } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then diff --git a/smoke-release-testing/mgconsole/query_modules.bash b/smoke-release-testing/mgconsole/query_modules.bash index ac4f6bf09..3e612ca3b 100755 --- a/smoke-release-testing/mgconsole/query_modules.bash +++ b/smoke-release-testing/mgconsole/query_modules.bash @@ -3,15 +3,10 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_query_modules() { - __host="$1" - __port="$2" echo "FEATURE: All MAGE query modules" - - # TODO(gitbuda): What are the 3 added modules? -> Probably the migration modules. - echo "CALL mg.procedures() YIELD * RETURN count(*) AS cnt;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port --output-format=csv | python3 $SCRIPT_DIR/validator.py first_as_int -f cnt -e 313 - - echo "CREATE (a), (b), (c), (d), (a)-[:ET]->(b), (c)-[:ET]->(d);" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "CALL leiden_community_detection.get() YIELD * RETURN communities, community_id, node;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next_csv "CALL mg.procedures() YIELD * RETURN count(*) AS cnt;" | python3 $SCRIPT_DIR/validator.py first_as_int -f cnt -e 313 + run_next "CREATE (a), (b), (c), (d), (a)-[:ET]->(b), (c)-[:ET]->(d);" + run_next "CALL leiden_community_detection.get() YIELD * RETURN communities, community_id, node;" } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then diff --git a/smoke-release-testing/mgconsole/regex.bash b/smoke-release-testing/mgconsole/regex.bash index fd183b50f..2271d273f 100755 --- a/smoke-release-testing/mgconsole/regex.bash +++ b/smoke-release-testing/mgconsole/regex.bash @@ -2,15 +2,11 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" -# TODO(gitbuda): Introduce default __host and __port values. test_regex() { - __host="$1" - __port="$2" echo "FEATURE: Regex" - - echo "CREATE (:Hero {name: 'xSPIDERy'});" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "CREATE (:Hero {name: 'test'});" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "MATCH (h:Hero) WHERE h.name =~ \".*SPIDER.+\" RETURN h.name as PotentialSpiderDude ORDER BY PotentialSpiderDude;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "CREATE (:Hero {name: 'xSPIDERy'});" + run_next "CREATE (:Hero {name: 'test'});" + run_next "MATCH (h:Hero) WHERE h.name =~ \".*SPIDER.+\" RETURN h.name as PotentialSpiderDude ORDER BY PotentialSpiderDude;" } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then diff --git a/smoke-release-testing/mgconsole/session_trace.bash b/smoke-release-testing/mgconsole/session_trace.bash index cb9c7f2e8..eafd31ea5 100755 --- a/smoke-release-testing/mgconsole/session_trace.bash +++ b/smoke-release-testing/mgconsole/session_trace.bash @@ -3,14 +3,11 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_session_trace() { - __host="$1" - __port="$2" echo "FEATURE: Inspection" - echo "SUBFEATURE: Session trace" - echo "SET SESSION TRACE ON;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "CREATE (n);" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "MATCH (n) RETURN n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "SET SESSION TRACE ON;" + run_next "CREATE (n);" + run_next "MATCH (n) RETURN n;" } # NOTE: No extra functions to not polute the namespace, flags could be different for each mgconsole test. @@ -26,7 +23,7 @@ if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then cleanup_docker docker run -d --rm -p $MEMGRAPH_NEXT_DATA_BOLT_PORT:7687 --name memgraph_next_data \ $ENTERPRISE_DOCKER_ENVS_UNLIMITED $MEMGRAPH_NEXT_DOCKERHUB_IMAGE $MEMGRAPH_GENERAL_FLAGS \ - $MEMGRAPH_PROPERTY_COMPRESSION_FALGS $MEMGRAPH_SHOW_SCHEMA_INFO_FLAG $MEMGRAPH_SESSION_TRACE_FLAG + $MEMGRAPH_PROPERTY_COMPRESSION_FLAGS $MEMGRAPH_SHOW_SCHEMA_INFO_FLAG $MEMGRAPH_SESSION_TRACE_FLAG sleep 2 test_session_trace localhost $MEMGRAPH_NEXT_DATA_BOLT_PORT ;; diff --git a/smoke-release-testing/mgconsole/shortest_paths.bash b/smoke-release-testing/mgconsole/shortest_paths.bash index 1e070f1d0..a31a38890 100644 --- a/smoke-release-testing/mgconsole/shortest_paths.bash +++ b/smoke-release-testing/mgconsole/shortest_paths.bash @@ -3,11 +3,8 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_shortest_paths() { - __host="$1" - __port="$2" - echo "" echo "FEATURE: Deep-path Traversal Capabilities" - echo "MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "MATCH (n) DETACH DELETE n;" create_graph_query=" CREATE @@ -29,31 +26,24 @@ test_shortest_paths() { (f)-[:REL {weight: 1}]->(g), (g)-[:REL {weight: 1}]->(e); " - echo "$create_graph_query" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "$create_graph_query" echo "SUBFEATURE: KShortest paths - find top 3 shortest paths from A to E" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest | 3]->(n2) RETURN p;" \ - | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest | 3]->(n2) RETURN p;" echo "SUBFEATURE: KShortest paths - with path length bounds" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 2..4]->(n2) RETURN p;" \ - | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 2..4]->(n2) RETURN p;" echo "SUBFEATURE: Test KShortest paths with the bounds and limit" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 2..4 | 5]->(n2) RETURN p;" \ - | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*KShortest 2..4 | 5]->(n2) RETURN p;" echo "SUBFEATURE: AllShortest paths - find all shortest paths from A to E (with weight lambda)" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*AllShortest (r, n | r.weight)]->(n2) RETURN p;" \ - | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*AllShortest (r, n | r.weight)]->(n2) RETURN p;" echo "SUBFEATURE: AllShortest paths - with the upper bound and total_weight" - echo "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*AllShortest ..4 (r, n | r.weight) total_weight]->(n2) RETURN p, total_weight;" \ - | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "MATCH (n1:Node {id: 'A'}), (n2:Node {id: 'E'}) WITH n1, n2 MATCH p=(n1)-[*AllShortest ..4 (r, n | r.weight) total_weight]->(n2) RETURN p, total_weight;" echo "SUBFEATURE: AllShortest paths - using weight lambda + total_weight + the filter" - echo "MATCH p=(n1:Node {id: 'A'})-[*AllShortest ..4 (r, n | r.weight) total_weight (r, n, p, w | r.weight > 0 AND length(p) > 0)]->(n2:Node {id: 'E'}) RETURN p;" \ - | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "MATCH p=(n1:Node {id: 'A'})-[*AllShortest ..4 (r, n | r.weight) total_weight (r, n, p, w | r.weight > 0 AND length(p) > 0)]->(n2:Node {id: 'E'}) RETURN p;" - echo "MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "MATCH (n) DETACH DELETE n;" echo "Smoking Deep-path Traversal Capabilities DONE" - echo "" } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then diff --git a/smoke-release-testing/mgconsole/show_schema.bash b/smoke-release-testing/mgconsole/show_schema.bash index 7bdd54242..50dd8f927 100755 --- a/smoke-release-testing/mgconsole/show_schema.bash +++ b/smoke-release-testing/mgconsole/show_schema.bash @@ -3,12 +3,9 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_show_schema_info() { - __host="$1" - __port="$2" - echo "FEATURE: Show schema info" - - echo "CREATE (:Node {prop: 1});" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - data=$(echo "SHOW SCHEMA INFO;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port --output-format=csv --csv-doublequote=true) + echo "FEATURE: Fast Graph Schema" + run_next "CREATE (:Node {prop: 1});" + data=$(echo "SHOW SCHEMA INFO;" | $MGCONSOLE_NEXT_DEFAULT --output-format=csv --csv-doublequote=true) schema=$(echo "$data" | sed 1d) echo $schema diff --git a/smoke-release-testing/mgconsole/spatial.bash b/smoke-release-testing/mgconsole/spatial.bash index 5d5d79171..6373d0f4a 100755 --- a/smoke-release-testing/mgconsole/spatial.bash +++ b/smoke-release-testing/mgconsole/spatial.bash @@ -3,16 +3,12 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_spatial() { - __host="$1" - __port="$2" echo "FEATURE: Spatial data types and functionalities" - - echo "MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "CREATE (n {xy: point({x:1, y:2})}) RETURN n.xy.x;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "CREATE (n {xy: point({x:1, y:2})}) RETURN n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - - echo "CREATE POINT INDEX ON :School(location);" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SHOW INDEX INFO;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "MATCH (n) DETACH DELETE n;" + run_next "CREATE (n {xy: point({x:1, y:2})}) RETURN n.xy.x;" + run_next "CREATE (n {xy: point({x:1, y:2})}) RETURN n;" + run_next "CREATE POINT INDEX ON :School(location);" + run_next "SHOW INDEX INFO;" } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then diff --git a/smoke-release-testing/mgconsole/storage.bash b/smoke-release-testing/mgconsole/storage.bash index 902fb2675..84729ae80 100755 --- a/smoke-release-testing/mgconsole/storage.bash +++ b/smoke-release-testing/mgconsole/storage.bash @@ -3,13 +3,11 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_storage() { - __host="$1" - __port="$2" echo "FEATURE: Storage: IN_MEMORY_TRANSACTIONAL" - echo "SUBFEATURE: Property compression" - echo "CREATE (n:Label $MEMGRAPH_FULL_PROPERTIES_SET)-[:Edge $MEMGRAPH_FULL_PROPERTIES_SET]->(:Label);" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "MATCH (n) RETURN n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + # TODO(gitbuda): Under the CI, under test_single_mage.bash, the property compression is not enabled. + run_next "CREATE (n:Label $MEMGRAPH_FULL_PROPERTIES_SET)-[:Edge $MEMGRAPH_FULL_PROPERTIES_SET]->(:Label);" + run_next "MATCH (n) RETURN n;" } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then diff --git a/smoke-release-testing/mgconsole/streams.bash b/smoke-release-testing/mgconsole/streams.bash index b39dd1c38..d76287d74 100755 --- a/smoke-release-testing/mgconsole/streams.bash +++ b/smoke-release-testing/mgconsole/streams.bash @@ -3,11 +3,8 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_streams() { - __host="$1" - __port="$2" - echo "FEATURE: ABC" - - echo "SHOW STREAMS;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "FEATURE: Graph streams" + run_next "SHOW STREAMS;" } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then diff --git a/smoke-release-testing/mgconsole/template.bash b/smoke-release-testing/mgconsole/template.bash index b1c732523..e68862b9e 100755 --- a/smoke-release-testing/mgconsole/template.bash +++ b/smoke-release-testing/mgconsole/template.bash @@ -2,13 +2,9 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" -# TODO(gitbuda): Introduce default __host and __port values. test_template() { - __host="$1" - __port="$2" echo "FEATURE: ABC" - - echo "RETURN 1;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "RETURN 1;" } if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then diff --git a/smoke-release-testing/mgconsole/text_search.bash b/smoke-release-testing/mgconsole/text_search.bash index 23ee2d949..e8f518ef7 100644 --- a/smoke-release-testing/mgconsole/text_search.bash +++ b/smoke-release-testing/mgconsole/text_search.bash @@ -3,13 +3,10 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_text_search() { - __host="$1" - __port="$2" - echo "" - echo "FEATURE: Text Search" + echo "FEATURE: Indexing: Text Search" - echo "CREATE TEXT INDEX index_name ON :Label(prop1, prop2, prop3);" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SHOW INDEX INFO;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "CREATE TEXT INDEX index_name ON :Label(prop1, prop2, prop3);" + run_next "SHOW INDEX INFO;" echo "Text search and text property indices testing completed successfully" } diff --git a/smoke-release-testing/mgconsole/ttl.bash b/smoke-release-testing/mgconsole/ttl.bash index d685e1c17..749d07323 100755 --- a/smoke-release-testing/mgconsole/ttl.bash +++ b/smoke-release-testing/mgconsole/ttl.bash @@ -3,10 +3,7 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_ttl() { - __host="$1" - __port="$2" echo "FEATURE: Time-to-live TTL" - - echo "ENABLE TTL EVERY '1d' AT '00:00:00';" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port # TODO(gitbuda): Skip TTL already running error. - echo "CREATE GLOBAL EDGE INDEX ON :(ttl);" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "ENABLE TTL EVERY '1d' AT '00:00:00';" # TODO(gitbuda): Skip TTL already running error. + run_next "CREATE GLOBAL EDGE INDEX ON :(ttl);" } diff --git a/smoke-release-testing/mgconsole/type_constraints.bash b/smoke-release-testing/mgconsole/type_constraints.bash index 6d98033a2..702b5ff68 100755 --- a/smoke-release-testing/mgconsole/type_constraints.bash +++ b/smoke-release-testing/mgconsole/type_constraints.bash @@ -3,14 +3,12 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_type_constraints() { - __host="$1" - __port="$2" echo "FEATURE: Constraints: Data type" - echo "MATCH (n) DETACH DELETE n;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "CREATE CONSTRAINT ON (n:Node) ASSERT n.prop IS TYPED STRING;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "MATCH (n) DETACH DELETE n;" + run_next "CREATE CONSTRAINT ON (n:Node) ASSERT n.prop IS TYPED STRING;" set +e - echo "CREATE (n:Node {prop:23});" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + run_next "CREATE (n:Node {prop:23});" if [ $? -eq 0 ]; then echo "ERROR: Constraint violation not detected." exit 1 diff --git a/smoke-release-testing/mgconsole/user_profiles.bash b/smoke-release-testing/mgconsole/user_profiles.bash index 681881e0a..94690a578 100644 --- a/smoke-release-testing/mgconsole/user_profiles.bash +++ b/smoke-release-testing/mgconsole/user_profiles.bash @@ -3,29 +3,26 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_user_profiles() { - # TODO(gitbuda): args became useless -> NOTE: running this test alone still depends to make this args work -> FIX. - __host="$1" - __port="$2" echo "FEATURE: User Profiles and Resource Limit Constraints" echo "SUBFEATURE: Setup test user and profile" - echo "CREATE PROFILE user_profile LIMIT SESSIONS 2, TRANSACTIONS_MEMORY 100KB;" | $MGCONSOLE_NEXT_ADMIN - echo "SET PROFILE FOR tester TO user_profile;" | $MGCONSOLE_NEXT_ADMIN - echo "SHOW PROFILE FOR tester;" | $MGCONSOLE_NEXT_ADMIN + run_next_admin "CREATE PROFILE user_profile LIMIT SESSIONS 2, TRANSACTIONS_MEMORY 100KB;" + run_next_admin "SET PROFILE FOR tester TO user_profile;" + run_next_admin "SHOW PROFILE FOR tester;" echo "SUBFEATURE: Test memory limit enforcement" - # Test query that should work within 10KB limit - echo "CREATE (n:TestNode {id: 1, data: 'small'});" | $MGCONSOLE_NEXT_TESTER + # Test query that should work within 100KB limit + run_next_tester "CREATE (n:TestNode {id: 1, data: 'small'});" # This one should fail. Check for failure and continue only if it fails. - if ! echo "UNWIND range(1, 10000) AS i CREATE (n:MemoryTest {id: i, data: 'Data string ' + i}) RETURN count(n);" | $MGCONSOLE_NEXT_TESTER; then + if ! run_next_tester "UNWIND range(1, 10000) AS i CREATE (n:MemoryTest {id: i, data: 'Data string ' + i}) RETURN count(n);"; then echo "Memory limit enforcement by profile test failed as expected." fi echo "SUBFEATURE: Cleanup profile" - echo "DROP PROFILE user_profile;" | $MGCONSOLE_NEXT_ADMIN - echo "SHOW PROFILES;" | $MGCONSOLE_NEXT_ADMIN - echo "MATCH (n:TestNode) DETACH DELETE n;" | $MGCONSOLE_NEXT_ADMIN - echo "MATCH (n:MemoryTest) DETACH DELETE n;" | $MGCONSOLE_NEXT_ADMIN + run_next_admin "DROP PROFILE user_profile;" + run_next_admin "SHOW PROFILES;" + run_next_admin "MATCH (n:TestNode) DETACH DELETE n;" + run_next_admin "MATCH (n:MemoryTest) DETACH DELETE n;" echo "User profiles and resource limit constraints testing completed successfully" } diff --git a/smoke-release-testing/mgconsole/vector_search.bash b/smoke-release-testing/mgconsole/vector_search.bash index 8cf8ec7ec..ec573fd29 100755 --- a/smoke-release-testing/mgconsole/vector_search.bash +++ b/smoke-release-testing/mgconsole/vector_search.bash @@ -3,13 +3,9 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" test_vector_search() { - __host="$1" - __port="$2" - echo "FEATURE: Vector Search" - - echo "CREATE VECTOR INDEX vsi ON :Label(embedding) WITH CONFIG {\"dimension\":2, \"capacity\": 10};" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "CREATE VECTOR EDGE INDEX etvsi ON :EdgeType(embedding) WITH CONFIG {\"dimension\": 256, \"capacity\": 1000};" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - - echo "CALL vector_search.show_index_info() YIELD * RETURN *;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port - echo "SHOW VECTOR INDEX INFO;" | $MEMGRAPH_CONSOLE_BINARY --host $__host --port $__port + echo "FEATURE: Indexing: Vector Search" + run_next "CREATE VECTOR INDEX vsi ON :Label(embedding) WITH CONFIG {\"dimension\":2, \"capacity\": 10};" + run_next "CREATE VECTOR EDGE INDEX etvsi ON :EdgeType(embedding) WITH CONFIG {\"dimension\": 256, \"capacity\": 1000};" + run_next "CALL vector_search.show_index_info() YIELD * RETURN *;" + run_next "SHOW VECTOR INDEX INFO;" } diff --git a/smoke-release-testing/test_single_mage.bash b/smoke-release-testing/test_single_mage.bash index 0dcfcee0e..afe14ee1f 100755 --- a/smoke-release-testing/test_single_mage.bash +++ b/smoke-release-testing/test_single_mage.bash @@ -2,6 +2,11 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/utils.bash" +# Start timing the script execution +START_TIME=$(date +%s) +START_TIME_READABLE=$(date) +echo "Script execution started at: $START_TIME_READABLE" + # NOTE: 1st arg is how to pull LAST image, 2nd arg is how to pull NEXT image. spinup_and_cleanup_memgraph_dockers Dockerhub RC echo "Waiting for memgraph to initialize..." @@ -18,40 +23,39 @@ for test_file_path in "$SCRIPT_DIR/mgconsole/"*; do echo "Loaded $test_file_path..." done -test_auth_roles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_basic_auth $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_query $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_query_modules $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -set +e # NOTE: At the time of writing this failed becuase of a bug but the test/config is legit. - # Remove set +e after fix. -test_session_trace $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -set -e -test_show_schema_info $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_spatial $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_storage $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_streams $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_ttl $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_type_constraints $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_vector_search $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_dynamic_algos $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_functions $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_label_operations $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_regex $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_edge_type_operations $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_composite_indices $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_monitoring $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_multi_tenancy $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_nested_indices $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_or_expression_for_labels $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT - -# v3.5 testing. -test_shortest_paths $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_text_search $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT -test_durability $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT - -# NOTE: If the testing container is NOT restarted, all the auth test have to -# come after all tests that assume there are no users. +test_auth_roles +test_basic_auth +test_query +test_query_modules +# set +e # NOTE: At the time of writing this failed becuase of a bug but the test/config is legit. +# # Remove set +e after fix. +test_session_trace +# set -e +test_show_schema_info +test_spatial +test_storage +test_streams +test_ttl +test_type_constraints +test_vector_search +test_dynamic_algos +test_functions +test_label_operations +test_regex +test_edge_type_operations +test_composite_indices +test_monitoring +test_multi_tenancy +test_nested_indices +test_or_expression_for_labels +test_shortest_paths +test_text_search +test_durability +# NOTE: If the testing container is NOT restarted (each test having their own +# container), all the auth test have to come after all tests that assume there +# are no users. +# Add all the users to be able to perform the tests. echo "CREATE USER admin IDENTIFIED BY 'admin1234'; GRANT ALL PRIVILEGES TO admin;" | $MGCONSOLE_NEXT_DEFAULT echo "CREATE USER tester IDENTIFIED BY 'tester1234'; GRANT CREATE TO tester; GRANT CREATE_DELETE ON LABELS * TO tester; GRANT DATABASE memgraph TO tester;" | $MGCONSOLE_NEXT_ADMIN echo "SHOW USERS;" | $MGCONSOLE_NEXT_ADMIN @@ -61,4 +65,16 @@ echo "NOTE: admin and tester users are created for testing purposes." test_show_database_settings test_auth_roles test_impersonate_user -test_user_profiles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +test_user_profiles + +# End timing and calculate execution time +END_TIME=$(date +%s) +END_TIME_READABLE=$(date) +EXECUTION_TIME=$((END_TIME - START_TIME)) +EXECUTION_TIME_MINUTES=$((EXECUTION_TIME / 60)) +EXECUTION_TIME_SECONDS=$((EXECUTION_TIME % 60)) + +echo "" +echo "Script execution completed at: $END_TIME_READABLE" +echo "Total execution time: ${EXECUTION_TIME_MINUTES}m ${EXECUTION_TIME_SECONDS}s (${EXECUTION_TIME} seconds)" +echo "" diff --git a/smoke-release-testing/utils.bash b/smoke-release-testing/utils.bash index b8316679e..572b3f698 100755 --- a/smoke-release-testing/utils.bash +++ b/smoke-release-testing/utils.bash @@ -48,8 +48,8 @@ MEMGRAPH_GENERAL_FLAGS="--telemetry-enabled=false --log-level=TRACE --also-log-t MEMGRAPH_ENTERPRISE_DOCKER_ENVS="-e MEMGRAPH_ENTERPRISE_LICENSE=$MEMGRAPH_ENTERPRISE_LICENSE -e MEMGRAPH_ORGANIZATION_NAME=$MEMGRAPH_ORGANIZATION_NAME" MEMGRAPH_DOCKER_MOUNT_VOLUME_FLAGS="-v mg_lib:/var/lib/memgraph" MEMGRAPH_FULL_PROPERTIES_SET="{id:0, name:\"tester\", age:37, height:175.0, merried:true}" -MEMGRAPH_PROPERTY_COMPRESSION_FALGS="--storage-property-store-compression-enabled=true --storage-property-store-compression-level=mid" -MEMGRAPH_HA_COORDINATOR_FALGS="--coordinator-port=10001 --bolt-port=7687 --coordinator-id=1 --experimental-enabled=high-availability --coordinator-hostname=localhost --management-port=11001" +MEMGRAPH_PROPERTY_COMPRESSION_FLAGS="--storage-property-store-compression-enabled=true --storage-property-store-compression-level=mid" +MEMGRAPH_HA_COORDINATOR_FLAGS="--coordinator-port=10001 --bolt-port=7687 --coordinator-id=1 --experimental-enabled=high-availability --coordinator-hostname=localhost --management-port=11001" MEMGRAPH_SHOW_SCHEMA_INFO_FLAG="--schema-info-enabled=true" MEMGRAPH_SESSION_TRACE_FLAG="--query-log-directory=/var/log/memgraph/session_traces" MEMGRAPH_DEFAULT_HOST="localhost" @@ -64,6 +64,22 @@ MEMGRAPH_NEXT_MONITORING_PORT="9002" MGCONSOLE_NEXT_DEFAULT="$MEMGRAPH_CONSOLE_BINARY --host $MEMGRAPH_DEFAULT_HOST --port $MEMGRAPH_NEXT_DATA_BOLT_PORT" MGCONSOLE_NEXT_ADMIN="$MEMGRAPH_CONSOLE_BINARY --host $MEMGRAPH_DEFAULT_HOST --port $MEMGRAPH_NEXT_DATA_BOLT_PORT --username admin --password admin1234" MGCONSOLE_NEXT_TESTER="$MEMGRAPH_CONSOLE_BINARY --host $MEMGRAPH_DEFAULT_HOST --port $MEMGRAPH_NEXT_DATA_BOLT_PORT --username tester --password tester1234" +run_next() { + __query="$1" + echo "$__query" | $MGCONSOLE_NEXT_DEFAULT +} +run_next_admin() { + __query="$1" + echo "$__query" | $MGCONSOLE_NEXT_ADMIN +} +run_next_tester() { + __query="$1" + echo "$__query" | $MGCONSOLE_NEXT_TESTER +} +run_next_csv() { + __query="$1" + echo "$__query" | $MGCONSOLE_NEXT_DEFAULT --output-format=csv +} wait_port() { __port="$1" @@ -130,11 +146,13 @@ run_memgraph_binary() { } run_memgraph_binary_and_test() { + # NOTE: This function runs memgraph on the NEXT_DATA_BOLT_PORT because all + # tests are mostly executed against that (a convention to shorten the code). __args="$1" __test_func_name=$2 - __mg_pid=$(run_memgraph_binary "$__args") - wait_port $MEMGRAPH_DEFAULT_PORT - $__test_func_name $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_DEFAULT_PORT + __mg_pid=$(run_memgraph_binary "--bolt-port $MEMGRAPH_NEXT_DATA_BOLT_PORT $__args") + # wait_port $MEMGRAPH_NEXT_DATA_BOLT_PORT + $__test_func_name kill -15 $__mg_pid } @@ -211,7 +229,7 @@ run_memgraph_next_dockerhub_container() { docker run -d --rm -p $MEMGRAPH_NEXT_DATA_BOLT_PORT:7687 -p $MEMGRAPH_NEXT_MONITORING_PORT:9091 \ --name memgraph_next_data \ $MEMGRAPH_ENTERPRISE_DOCKER_ENVS $MEMGRAPH_NEXT_DOCKERHUB_IMAGE $MEMGRAPH_GENERAL_FLAGS \ - $MEMGRAPH_PROPERTY_COMPRESSION_FALGS $MEMGRAPH_SHOW_SCHEMA_INFO_FLAG + $MEMGRAPH_PROPERTY_COMPRESSION_FLAGS $MEMGRAPH_SHOW_SCHEMA_INFO_FLAG fi } @@ -222,13 +240,13 @@ run_memgraph_last_dockerhub_container_with_volume() { run_memgraph_next_dockerhub_container_with_volume() { docker run -d --rm -p $MEMGRAPH_NEXT_DATA_BOLT_PORT:7687 $MEMGRAPH_DOCKER_MOUNT_VOLUME_FLAGS \ - --name memgraph_next_data $ENTERPRISE_DOCKER_ENVS_UNLIMITED $MEMGRAPH_NEXT_DOCKERHUB_IMAGE $MEMGRAPH_GENERAL_FLAGS $MEMGRAPH_PROPERTY_COMPRESSION_FALGS + --name memgraph_next_data $ENTERPRISE_DOCKER_ENVS_UNLIMITED $MEMGRAPH_NEXT_DOCKERHUB_IMAGE $MEMGRAPH_GENERAL_FLAGS $MEMGRAPH_PROPERTY_COMPRESSION_FLAGS } run_memgraph_coordinator_next_dockerhub_container() { docker run -d --rm -p $MEMGRAPH_NEXT_COORDINATOR_BOLT_PORT:7687 --name memgraph_next_coordinator \ $MEMGRAPH_ENTERPRISE_DOCKER_ENVS $MEMGRAPH_NEXT_DOCKERHUB_IMAGE $MEMGRAPH_GENERAL_FLAGS \ - $MEMGRAPH_PROPERTY_COMPRESSION_FALGS $MEMGRAPH_HA_COORDINATOR_FALGS + $MEMGRAPH_PROPERTY_COMPRESSION_FLAGS $MEMGRAPH_HA_COORDINATOR_FLAGS } run_memgraph_docker_containers() { From c77eaeaa1fc2b42c64cda9582084c8cbd52eb614 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sun, 24 Aug 2025 12:51:37 +0200 Subject: [PATCH 12/12] Remove leftover commented code --- smoke-release-testing/test_single_mage.bash | 3 --- 1 file changed, 3 deletions(-) diff --git a/smoke-release-testing/test_single_mage.bash b/smoke-release-testing/test_single_mage.bash index afe14ee1f..61ab91ded 100755 --- a/smoke-release-testing/test_single_mage.bash +++ b/smoke-release-testing/test_single_mage.bash @@ -27,10 +27,7 @@ test_auth_roles test_basic_auth test_query test_query_modules -# set +e # NOTE: At the time of writing this failed becuase of a bug but the test/config is legit. -# # Remove set +e after fix. test_session_trace -# set -e test_show_schema_info test_spatial test_storage