From 531f0079387e658c81e82ec7ca09d70c46482f82 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Fri, 10 Oct 2025 18:09:01 +0200 Subject: [PATCH 1/5] Add v3.7 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 84ca44e8d..f20abaefd 100755 --- a/smoke-release-testing/experiment.bash +++ b/smoke-release-testing/experiment.bash @@ -2,6 +2,8 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/utils.bash" +# TODO(gitbuda): Add v3.7 tests. + # 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. From a3866064b8042e1735f555d821d92473377e1a67 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sat, 8 Nov 2025 19:38:41 -0800 Subject: [PATCH 2/5] Start the testing, first part of LOAD PARQUET loaded --- smoke-release-testing/experiment.bash | 5 ++++- smoke-release-testing/mgconsole/load_xyz.bash | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100755 smoke-release-testing/mgconsole/load_xyz.bash diff --git a/smoke-release-testing/experiment.bash b/smoke-release-testing/experiment.bash index f20abaefd..08e8b4fb6 100755 --- a/smoke-release-testing/experiment.bash +++ b/smoke-release-testing/experiment.bash @@ -7,7 +7,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 none none +spinup_and_cleanup_memgraph_dockers none RC echo "Waiting for memgraph to initialize..." wait_for_memgraph $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT echo "Memgraph is up and running!" @@ -15,6 +15,9 @@ echo "Memgraph is up and running!" source ./mgconsole/user_profiles.bash test_user_profiles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +source ./mgconsole/load_xyz.bash +test_load_xyz $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 # * if it's != 0 -> something went wrong. diff --git a/smoke-release-testing/mgconsole/load_xyz.bash b/smoke-release-testing/mgconsole/load_xyz.bash new file mode 100755 index 000000000..936ec7f77 --- /dev/null +++ b/smoke-release-testing/mgconsole/load_xyz.bash @@ -0,0 +1,10 @@ +#!/bin/bash +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source "$SCRIPT_DIR/../utils.bash" + +test_load_xyz() { + echo "FEATURE: LOAD CSV/JSONL/PARQUET" + # Added in v3.7. + # TODO(gitbuda): Create test files and mount them when starting containers. + run_next "LOAD PARQUET FROM 'nodes.parquet' AS row CREATE (n:Node {id: row.id});" +} From b6c5663bafebec67da5b5ecbdaef18f3ec006bbe Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Fri, 28 Nov 2025 19:09:24 +0100 Subject: [PATCH 3/5] Add local data mount volume --- smoke-release-testing/data/nodes.parquet | 1 + smoke-release-testing/experiment.bash | 4 ++-- smoke-release-testing/mgconsole/load_xyz.bash | 2 +- smoke-release-testing/utils.bash | 3 +++ 4 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 smoke-release-testing/data/nodes.parquet diff --git a/smoke-release-testing/data/nodes.parquet b/smoke-release-testing/data/nodes.parquet new file mode 100644 index 000000000..a5ee36342 --- /dev/null +++ b/smoke-release-testing/data/nodes.parquet @@ -0,0 +1 @@ +dummy -> TODO: generate valid parquet diff --git a/smoke-release-testing/experiment.bash b/smoke-release-testing/experiment.bash index 08e8b4fb6..ba6300255 100755 --- a/smoke-release-testing/experiment.bash +++ b/smoke-release-testing/experiment.bash @@ -5,9 +5,9 @@ source "$SCRIPT_DIR/utils.bash" # TODO(gitbuda): Add v3.7 tests. # NOTE: Use the below line if you just want to spin up the containers and leave them running. -# run_memgraph_docker_containers RC RC +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 RC +# spinup_and_cleanup_memgraph_dockers none RC 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/load_xyz.bash b/smoke-release-testing/mgconsole/load_xyz.bash index 936ec7f77..9c776751d 100755 --- a/smoke-release-testing/mgconsole/load_xyz.bash +++ b/smoke-release-testing/mgconsole/load_xyz.bash @@ -6,5 +6,5 @@ test_load_xyz() { echo "FEATURE: LOAD CSV/JSONL/PARQUET" # Added in v3.7. # TODO(gitbuda): Create test files and mount them when starting containers. - run_next "LOAD PARQUET FROM 'nodes.parquet' AS row CREATE (n:Node {id: row.id});" + run_next "LOAD PARQUET FROM '/data/nodes.parquet' AS row CREATE (n:Node {id: row.id});" } diff --git a/smoke-release-testing/utils.bash b/smoke-release-testing/utils.bash index 6abb1c388..cb4cc8b44 100755 --- a/smoke-release-testing/utils.bash +++ b/smoke-release-testing/utils.bash @@ -47,6 +47,7 @@ check_dockerhub_images MEMGRAPH_GENERAL_FLAGS="--telemetry-enabled=false --log-level=TRACE --also-log-to-stderr" 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_DOCKER_LOCAL_DATA_MOUNT_VOLUME_FLAGS="-v $SCRIPT_DIR/data:/data" MEMGRAPH_FULL_PROPERTIES_SET="{id:0, name:\"tester\", age:37, height:175.0, merried:true}" 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" @@ -219,6 +220,7 @@ pull_docker_images() { run_memgraph_last_dockerhub_container() { if [ ! "$(docker ps -q -f name=memgraph_last_data)" ]; then docker run -d --rm -p $MEMGRAPH_LAST_DATA_BOLT_PORT:7687 -p $MEMGRAPH_LAST_MONITORING_PORT:9091 \ + $MEMGRAPH_DOCKER_LOCAL_DATA_MOUNT_VOLUME_FLAGS \ --name memgraph_last_data \ $MEMGRAPH_LAST_DOCKERHUB_IMAGE $MEMGRAPH_GENERAL_FLAGS fi @@ -227,6 +229,7 @@ run_memgraph_last_dockerhub_container() { run_memgraph_next_dockerhub_container() { if [ ! "$(docker ps -q -f name=memgraph_next_data)" ]; then docker run -d --rm -p $MEMGRAPH_NEXT_DATA_BOLT_PORT:7687 -p $MEMGRAPH_NEXT_MONITORING_PORT:9091 \ + $MEMGRAPH_DOCKER_LOCAL_DATA_MOUNT_VOLUME_FLAGS \ --name memgraph_next_data \ $MEMGRAPH_ENTERPRISE_DOCKER_ENVS $MEMGRAPH_NEXT_DOCKERHUB_IMAGE $MEMGRAPH_GENERAL_FLAGS \ $MEMGRAPH_PROPERTY_COMPRESSION_FLAGS $MEMGRAPH_SHOW_SCHEMA_INFO_FLAG From 4e40c9e51e36a41b2bc7418e3a82a440a2fc5a12 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Sat, 29 Nov 2025 20:09:53 -0800 Subject: [PATCH 4/5] Fix the LOAD PARQUET test --- smoke-release-testing/data/nodes.csv | 2 ++ smoke-release-testing/data/nodes.parquet | Bin 38 -> 406 bytes smoke-release-testing/experiment.bash | 8 ++++---- smoke-release-testing/mgconsole/load_xyz.bash | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 smoke-release-testing/data/nodes.csv diff --git a/smoke-release-testing/data/nodes.csv b/smoke-release-testing/data/nodes.csv new file mode 100644 index 000000000..3ff3deb87 --- /dev/null +++ b/smoke-release-testing/data/nodes.csv @@ -0,0 +1,2 @@ +id +1 diff --git a/smoke-release-testing/data/nodes.parquet b/smoke-release-testing/data/nodes.parquet index a5ee36342e3256bebc89a10a720d972b45bf6ac1..dfdca97398dae9c7b80f3f4e9f8ba22237253bf2 100644 GIT binary patch literal 406 zcmYjOO-sW-5S=VBR0(1W6SA;}ToOE_wW;Vqyi7`qVvB7+1aF~+*n>8vYN5ZzpXy9P z!FQOCH*aQ^*#%_@+IWJeGgN5z0FKTq07ww9hh8isI_Q{dIJXktO1fRH9tVo8vMdFt zbbJNAvt7Lv?>REzhRRp#*AQlgMV`_|n+OcLIfOmr`v z^MmJXBGi)@j@Xydep`UU^UAMaUCVE_OC literal 38 tcmYc(&CRV;(6v(t@ptjJQb Date: Sun, 30 Nov 2025 16:26:00 -0800 Subject: [PATCH 5/5] Finish the LOAD PARQUET test --- smoke-release-testing/experiment.bash | 7 +------ smoke-release-testing/mgconsole/load_xyz.bash | 8 ++++---- smoke-release-testing/mgconsole/query_modules.bash | 2 +- smoke-release-testing/test_single_mage.bash | 1 + 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/smoke-release-testing/experiment.bash b/smoke-release-testing/experiment.bash index 572b407e6..3e1a5e7f3 100755 --- a/smoke-release-testing/experiment.bash +++ b/smoke-release-testing/experiment.bash @@ -2,8 +2,6 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/utils.bash" -# TODO(gitbuda): Add v3.7 tests. - # 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. @@ -12,11 +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/user_profiles.bash -# test_user_profiles $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT - source ./mgconsole/load_xyz.bash -test_load_xyz $MEMGRAPH_DEFAULT_HOST $MEMGRAPH_NEXT_DATA_BOLT_PORT +test_load_parquet $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/load_xyz.bash b/smoke-release-testing/mgconsole/load_xyz.bash index 772d6fbd0..6145025d3 100755 --- a/smoke-release-testing/mgconsole/load_xyz.bash +++ b/smoke-release-testing/mgconsole/load_xyz.bash @@ -2,10 +2,10 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "$SCRIPT_DIR/../utils.bash" -test_load_xyz() { - echo "FEATURE: LOAD CSV/JSONL/PARQUET" +test_load_parquet() { # Added in v3.7. - # TODO(gitbuda): Create test files and mount them when starting containers. + echo "FEATURE: LOAD PARQUET" + run_next "MATCH (n) DETACH DELETE n;" run_next "LOAD PARQUET FROM '/data/nodes.parquet' AS row CREATE (n:Node {id: row.id});" - run_next "MATCH (n) RETURN n;" + run_next_csv "MATCH (n) RETURN n;" | python3 $SCRIPT_DIR/validator.py validate_number_of_results -e 1 } diff --git a/smoke-release-testing/mgconsole/query_modules.bash b/smoke-release-testing/mgconsole/query_modules.bash index f244fae7c..c57a147c4 100755 --- a/smoke-release-testing/mgconsole/query_modules.bash +++ b/smoke-release-testing/mgconsole/query_modules.bash @@ -4,7 +4,7 @@ source "$SCRIPT_DIR/../utils.bash" test_query_modules() { echo "FEATURE: All MAGE query modules" - run_next_csv "CALL mg.procedures() YIELD * RETURN count(*) AS cnt;" | python3 $SCRIPT_DIR/validator.py first_as_int -f cnt -e 318 + run_next_csv "CALL mg.procedures() YIELD * RETURN count(*) AS cnt;" | python3 $SCRIPT_DIR/validator.py first_as_int -f cnt -e 321 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;" } diff --git a/smoke-release-testing/test_single_mage.bash b/smoke-release-testing/test_single_mage.bash index 61ab91ded..47e437fd8 100755 --- a/smoke-release-testing/test_single_mage.bash +++ b/smoke-release-testing/test_single_mage.bash @@ -48,6 +48,7 @@ test_or_expression_for_labels test_shortest_paths test_text_search test_durability +test_load_parquet # 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