diff --git a/.circleci/config.yml b/.circleci/config.yml index bf50ffd4e..2daf08b4c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -291,11 +291,11 @@ jobs: # run make check-citus-upgrade for all citus versions # the image has ${CITUS_VERSIONS} set with all verions it contains the binaries of for citus_version in ${CITUS_VERSIONS}; do \ - export upgrade_test_old_citus_version="$citus_version"; \ gosu circleci \ make -C src/test/regress \ check-citus-upgrade \ bindir=/usr/lib/postgresql/${PG_MAJOR}/bin \ + citus-old-version=${citus_version} \ citus-pre-tar=/install-pg${PG_MAJOR}-citus${citus_version}.tar \ citus-post-tar=/home/circleci/project/install-$PG_MAJOR.tar; \ done; @@ -306,6 +306,7 @@ jobs: gosu circleci \ make -C src/test/regress \ check-citus-upgrade-mixed \ + citus-old-version=${citus_version} \ bindir=/usr/lib/postgresql/${PG_MAJOR}/bin \ citus-pre-tar=/install-pg${PG_MAJOR}-citus${citus_version}.tar \ citus-post-tar=/home/circleci/project/install-$PG_MAJOR.tar; \ diff --git a/src/test/regress/Makefile b/src/test/regress/Makefile index 68adf6b28..5187c05d4 100644 --- a/src/test/regress/Makefile +++ b/src/test/regress/Makefile @@ -28,7 +28,7 @@ pg_regress_multi_check = $(PERL) $(citus_abs_srcdir)/pg_regress_multi.pl --pgxsd MULTI_REGRESS_OPTS = --inputdir=$(citus_abs_srcdir) $(pg_regress_locale_flags) --launcher="$(citus_abs_srcdir)/log_test_times" pg_upgrade_check = $(citus_abs_srcdir)/citus_tests/upgrade/pg_upgrade_test.py -citus_upgrade_check = $(citus_abs_srcdir)/citus_tests/upgrade/citus_upgrade_test.py +citus_upgrade_check =CITUS_OLD_VERSION=$(citus-old-version) $(citus_abs_srcdir)/citus_tests/upgrade/citus_upgrade_test.py arbitrary_config_check = $(citus_abs_srcdir)/citus_tests/arbitrary_configs/citus_arbitrary_configs.py template_isolation_files = $(shell find $(citus_abs_srcdir)/spec/ -name '*.spec') diff --git a/src/test/regress/citus_tests/upgrade/citus_upgrade_test.py b/src/test/regress/citus_tests/upgrade/citus_upgrade_test.py index 2e2f8f9ea..1ad93fec8 100755 --- a/src/test/regress/citus_tests/upgrade/citus_upgrade_test.py +++ b/src/test/regress/citus_tests/upgrade/citus_upgrade_test.py @@ -188,7 +188,8 @@ def generate_citus_tarballs(citus_version): ) common.initialize_temp_dir_if_not_exists(tmp_dir) - local_script_path = os.path.abspath("upgrade/generate_citus_tarballs.sh") + dirpath = os.path.dirname(os.path.realpath(__file__)) + local_script_path = os.path.join(dirpath, "generate_citus_tarballs.sh") with utils.cd(tmp_dir): subprocess.check_call([local_script_path, citus_version]) diff --git a/src/test/regress/citus_tests/upgrade/generate_citus_tarballs.sh b/src/test/regress/citus_tests/upgrade/generate_citus_tarballs.sh index 0a49cf3a5..440154aa3 100755 --- a/src/test/regress/citus_tests/upgrade/generate_citus_tarballs.sh +++ b/src/test/regress/citus_tests/upgrade/generate_citus_tarballs.sh @@ -6,56 +6,56 @@ citus_old_version=$1 base="$(pwd)" - install_citus_and_tar() { - # do everything in a subdirectory to avoid clutter in current directory - mkdir -p "${builddir}" && cd "${builddir}" + # do everything in a subdirectory to avoid clutter in current directory + mkdir -p "${builddir}" && cd "${builddir}" - "${citus_dir}/configure" --without-libcurl + "${citus_dir}/configure" --without-libcurl - installdir="${builddir}/install" - make "-j$(nproc)" && mkdir -p "${installdir}" && make DESTDIR="${installdir}" install + installdir="${builddir}/install" + make "-j$(nproc)" && mkdir -p "${installdir}" && make DESTDIR="${installdir}" install - cd "${installdir}" && find . -type f -print > "${builddir}/files.lst" + cd "${installdir}" && find . -type f -print >"${builddir}/files.lst" - tar cvf "${basedir}/install-citus${citus_version}.tar" $(cat "${builddir}"/files.lst) - mv "${basedir}/install-citus${citus_version}.tar" "${base}/install-citus${citus_version}.tar" + tar cvf "${basedir}/install-citus${citus_version}.tar" $(cat "${builddir}"/files.lst) + mv "${basedir}/install-citus${citus_version}.tar" "${base}/install-citus${citus_version}.tar" - cd "${builddir}" && rm -rf install files.lst && make clean + cd "${builddir}" && rm -rf install files.lst && make clean } build_current() { - citus_version="$1" - basedir="${base}/${citus_version}" + citus_version="$1" + basedir="${base}/${citus_version}" - mkdir -p "${basedir}" - citus_repo="${base}/../../../.." + mkdir -p "${basedir}" + citus_repo=$(git rev-parse --show-toplevel) - cd "$citus_repo" && cp -R . /tmp/citus_copy - mv /tmp/citus_copy "${basedir}/citus_${citus_version}" - builddir="${basedir}/build" - cd "${basedir}" + cd "$citus_repo" && cp -R . /tmp/citus_copy + # https://stackoverflow.com/questions/957928/is-there-a-way-to-get-the-git-root-directory-in-one-command + mv /tmp/citus_copy "${basedir}/citus_${citus_version}" + builddir="${basedir}/build" + cd "${basedir}" - citus_dir=${basedir}/citus_$citus_version + citus_dir=${basedir}/citus_$citus_version - make -C "${citus_dir}" clean - cd "${citus_dir}" - ./configure --without-libcurl + make -C "${citus_dir}" clean + cd "${citus_dir}" + ./configure --without-libcurl - install_citus_and_tar + install_citus_and_tar } build_ext() { - citus_version="$1" - basedir="${base}/${citus_version}" + citus_version="$1" + basedir="${base}/${citus_version}" - mkdir -p "${basedir}" - cd "${basedir}" - citus_dir=${basedir}/citus_$citus_version - git clone --branch "$citus_version" https://github.com/citusdata/citus.git --depth 1 citus_"$citus_version" - builddir="${basedir}/build" + mkdir -p "${basedir}" + cd "${basedir}" + citus_dir=${basedir}/citus_$citus_version + git clone --branch "$citus_version" https://github.com/citusdata/citus.git --depth 1 citus_"$citus_version" + builddir="${basedir}/build" - install_citus_and_tar + install_citus_and_tar } build_current "master" diff --git a/src/test/regress/expected/upgrade_columnar_metapage_after.out b/src/test/regress/expected/upgrade_columnar_metapage_after.out index d0825f9e5..7268167dd 100644 --- a/src/test/regress/expected/upgrade_columnar_metapage_after.out +++ b/src/test/regress/expected/upgrade_columnar_metapage_after.out @@ -1,4 +1,4 @@ -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int >= 10 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int >= 0 AS upgrade_test_old_citus_version_ge_10_0; diff --git a/src/test/regress/expected/upgrade_columnar_metapage_after_0.out b/src/test/regress/expected/upgrade_columnar_metapage_after_0.out index 3d2de4490..e515fe47d 100644 --- a/src/test/regress/expected/upgrade_columnar_metapage_after_0.out +++ b/src/test/regress/expected/upgrade_columnar_metapage_after_0.out @@ -1,4 +1,4 @@ -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int >= 10 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int >= 0 AS upgrade_test_old_citus_version_ge_10_0; diff --git a/src/test/regress/expected/upgrade_columnar_metapage_before.out b/src/test/regress/expected/upgrade_columnar_metapage_before.out index bdca0c2c3..936ad7f10 100644 --- a/src/test/regress/expected/upgrade_columnar_metapage_before.out +++ b/src/test/regress/expected/upgrade_columnar_metapage_before.out @@ -1,4 +1,4 @@ -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int >= 10 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int >= 0 AS upgrade_test_old_citus_version_ge_10_0; diff --git a/src/test/regress/expected/upgrade_columnar_metapage_before_0.out b/src/test/regress/expected/upgrade_columnar_metapage_before_0.out index 3d2de4490..e515fe47d 100644 --- a/src/test/regress/expected/upgrade_columnar_metapage_before_0.out +++ b/src/test/regress/expected/upgrade_columnar_metapage_before_0.out @@ -1,4 +1,4 @@ -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int >= 10 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int >= 0 AS upgrade_test_old_citus_version_ge_10_0; diff --git a/src/test/regress/expected/upgrade_partition_constraints_after.out b/src/test/regress/expected/upgrade_partition_constraints_after.out index 62d6c860c..399cf1345 100644 --- a/src/test/regress/expected/upgrade_partition_constraints_after.out +++ b/src/test/regress/expected/upgrade_partition_constraints_after.out @@ -1,5 +1,5 @@ -- run this test only when old citus version is 9.0 -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int = 9 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int = 0 AS upgrade_test_old_citus_version_e_9_0; diff --git a/src/test/regress/expected/upgrade_partition_constraints_after_0.out b/src/test/regress/expected/upgrade_partition_constraints_after_0.out index cb52846b8..f6e158c9d 100644 --- a/src/test/regress/expected/upgrade_partition_constraints_after_0.out +++ b/src/test/regress/expected/upgrade_partition_constraints_after_0.out @@ -1,5 +1,5 @@ -- run this test only when old citus version is 9.0 -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int = 9 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int = 0 AS upgrade_test_old_citus_version_e_9_0; diff --git a/src/test/regress/expected/upgrade_partition_constraints_before.out b/src/test/regress/expected/upgrade_partition_constraints_before.out index 881b3131f..fe03ebfe7 100644 --- a/src/test/regress/expected/upgrade_partition_constraints_before.out +++ b/src/test/regress/expected/upgrade_partition_constraints_before.out @@ -1,5 +1,5 @@ -- run this test only when old citus version is 9.0 -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int = 9 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int = 0 AS upgrade_test_old_citus_version_e_9_0; diff --git a/src/test/regress/expected/upgrade_partition_constraints_before_0.out b/src/test/regress/expected/upgrade_partition_constraints_before_0.out index cb52846b8..f6e158c9d 100644 --- a/src/test/regress/expected/upgrade_partition_constraints_before_0.out +++ b/src/test/regress/expected/upgrade_partition_constraints_before_0.out @@ -1,5 +1,5 @@ -- run this test only when old citus version is 9.0 -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int = 9 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int = 0 AS upgrade_test_old_citus_version_e_9_0; diff --git a/src/test/regress/expected/upgrade_pg_dist_object_test_after.out b/src/test/regress/expected/upgrade_pg_dist_object_test_after.out index 7437177f5..eb45cf0f1 100644 --- a/src/test/regress/expected/upgrade_pg_dist_object_test_after.out +++ b/src/test/regress/expected/upgrade_pg_dist_object_test_after.out @@ -1,5 +1,5 @@ -- run this test only when old citus version is 9.0 -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int = 9 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int = 0 AS upgrade_test_old_citus_version_e_9_0; diff --git a/src/test/regress/expected/upgrade_pg_dist_object_test_after_0.out b/src/test/regress/expected/upgrade_pg_dist_object_test_after_0.out index cb52846b8..f6e158c9d 100644 --- a/src/test/regress/expected/upgrade_pg_dist_object_test_after_0.out +++ b/src/test/regress/expected/upgrade_pg_dist_object_test_after_0.out @@ -1,5 +1,5 @@ -- run this test only when old citus version is 9.0 -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int = 9 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int = 0 AS upgrade_test_old_citus_version_e_9_0; diff --git a/src/test/regress/expected/upgrade_pg_dist_object_test_before.out b/src/test/regress/expected/upgrade_pg_dist_object_test_before.out index 4ba0e3aa9..fabae26ea 100644 --- a/src/test/regress/expected/upgrade_pg_dist_object_test_before.out +++ b/src/test/regress/expected/upgrade_pg_dist_object_test_before.out @@ -1,5 +1,5 @@ -- run this test only when old citus version is 9.0 -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int = 9 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int = 0 AS upgrade_test_old_citus_version_e_9_0; diff --git a/src/test/regress/expected/upgrade_pg_dist_object_test_before_0.out b/src/test/regress/expected/upgrade_pg_dist_object_test_before_0.out index cb52846b8..f6e158c9d 100644 --- a/src/test/regress/expected/upgrade_pg_dist_object_test_before_0.out +++ b/src/test/regress/expected/upgrade_pg_dist_object_test_before_0.out @@ -1,5 +1,5 @@ -- run this test only when old citus version is 9.0 -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int = 9 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int = 0 AS upgrade_test_old_citus_version_e_9_0; diff --git a/src/test/regress/sql/upgrade_columnar_metapage_after.sql b/src/test/regress/sql/upgrade_columnar_metapage_after.sql index 5fbe76011..e42c0c8da 100644 --- a/src/test/regress/sql/upgrade_columnar_metapage_after.sql +++ b/src/test/regress/sql/upgrade_columnar_metapage_after.sql @@ -1,4 +1,4 @@ -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int >= 10 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int >= 0 AS upgrade_test_old_citus_version_ge_10_0; diff --git a/src/test/regress/sql/upgrade_columnar_metapage_before.sql b/src/test/regress/sql/upgrade_columnar_metapage_before.sql index 393f8fdc6..34e6d4fa4 100644 --- a/src/test/regress/sql/upgrade_columnar_metapage_before.sql +++ b/src/test/regress/sql/upgrade_columnar_metapage_before.sql @@ -1,4 +1,4 @@ -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int >= 10 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int >= 0 AS upgrade_test_old_citus_version_ge_10_0; diff --git a/src/test/regress/sql/upgrade_partition_constraints_after.sql b/src/test/regress/sql/upgrade_partition_constraints_after.sql index 447f49762..a0cc483b5 100644 --- a/src/test/regress/sql/upgrade_partition_constraints_after.sql +++ b/src/test/regress/sql/upgrade_partition_constraints_after.sql @@ -1,5 +1,5 @@ -- run this test only when old citus version is 9.0 -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int = 9 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int = 0 AS upgrade_test_old_citus_version_e_9_0; diff --git a/src/test/regress/sql/upgrade_partition_constraints_before.sql b/src/test/regress/sql/upgrade_partition_constraints_before.sql index 8151841c1..12dc3f6ce 100644 --- a/src/test/regress/sql/upgrade_partition_constraints_before.sql +++ b/src/test/regress/sql/upgrade_partition_constraints_before.sql @@ -1,5 +1,5 @@ -- run this test only when old citus version is 9.0 -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int = 9 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int = 0 AS upgrade_test_old_citus_version_e_9_0; diff --git a/src/test/regress/sql/upgrade_pg_dist_object_test_after.sql b/src/test/regress/sql/upgrade_pg_dist_object_test_after.sql index 4adb0a421..6427d93c7 100644 --- a/src/test/regress/sql/upgrade_pg_dist_object_test_after.sql +++ b/src/test/regress/sql/upgrade_pg_dist_object_test_after.sql @@ -1,5 +1,5 @@ -- run this test only when old citus version is 9.0 -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int = 9 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int = 0 AS upgrade_test_old_citus_version_e_9_0; diff --git a/src/test/regress/sql/upgrade_pg_dist_object_test_before.sql b/src/test/regress/sql/upgrade_pg_dist_object_test_before.sql index 3ed8c6483..5e574ed91 100644 --- a/src/test/regress/sql/upgrade_pg_dist_object_test_before.sql +++ b/src/test/regress/sql/upgrade_pg_dist_object_test_before.sql @@ -1,5 +1,5 @@ -- run this test only when old citus version is 9.0 -\set upgrade_test_old_citus_version `echo "$upgrade_test_old_citus_version"` +\set upgrade_test_old_citus_version `echo "$CITUS_OLD_VERSION"` SELECT substring(:'upgrade_test_old_citus_version', 'v(\d+)\.\d+\.\d+')::int = 9 AND substring(:'upgrade_test_old_citus_version', 'v\d+\.(\d+)\.\d+')::int = 0 AS upgrade_test_old_citus_version_e_9_0;