Skip to content

Commit

Permalink
First tests of upgrade for package installation method (#170)
Browse files Browse the repository at this point in the history
  • Loading branch information
tailhook committed Oct 16, 2020
1 parent 956da07 commit 68df338
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 15 deletions.
13 changes: 10 additions & 3 deletions tests/docker.rs
Expand Up @@ -97,9 +97,16 @@ pub fn run(tagname: &str, script: &str) -> assert_cmd::assert::Assert {
.assert()
}

pub fn run_with_socket(tagname: &str, script: &str)
pub fn run_docker(tagname: &str, script: &str)
-> assert_cmd::assert::Assert
{
let script = format!(r###"
docker ps -q -f 'name=edgedb_test' | xargs -r docker container kill
docker system prune --all --force
docker volume list -q -f 'name=edgedb_test' | xargs -r docker volume rm
{script}
"###, script=script);
let path = if let Ok(path) = env::var("DOCKER_VOLUME_PATH") {
path.to_string()
} else {
Expand All @@ -112,7 +119,7 @@ pub fn run_with_socket(tagname: &str, script: &str)
.arg(format!("--volume={0}:{0}", path))
.arg("--net=host")
.arg(tagname)
.args(&["sh", "-exc", script])
.args(&["bash", "-exc", &script])
.assert()
}

Expand All @@ -129,7 +136,7 @@ pub fn run_systemd(tagname: &str, script: &str)
cg_path=$(cat /proc/self/cgroup | grep -oP '(?<=name=).*' | sed s/://)
mkdir -p /run/user/1000 /sys/fs/cgroup/$cg_path
chown user1 /sys/fs/cgroup/$cg_path /run/user/1000
sudo -H -u user1 sh -exc {script}
sudo -H -u user1 bash -exc {script}
"###, script=shell_words::quote(&script));
Command::new("docker")
.arg("run")
Expand Down
8 changes: 2 additions & 6 deletions tests/github-nightly/install.rs
Expand Up @@ -2,7 +2,7 @@ use test_case::test_case;
use predicates::str::contains;

use crate::docker::{Context, build_image};
use crate::docker::{run, run_with_socket, run_systemd};
use crate::docker::{run, run_docker, run_systemd};
use crate::common::{dock_ubuntu, dock_centos, dock_debian};


Expand Down Expand Up @@ -58,11 +58,7 @@ fn docker(tagname: &str, dockerfile: &str) -> anyhow::Result<()> {
.add_sudoers()?
.add_bin()?;
build_image(context, tagname)?;
run_with_socket(tagname, r###"
docker ps -q -f 'name=edgedb_test' | xargs -r docker container kill
docker system prune --all --force
docker volume list -q -f 'name=edgedb_test' | xargs -r docker volume rm
run_docker(tagname, r###"
edgedb server install --nightly --method=docker
"###).success();
Ok(())
Expand Down
44 changes: 38 additions & 6 deletions tests/github-nightly/upgrade.rs
@@ -1,14 +1,13 @@
use test_case::test_case;

use crate::docker::{Context, build_image};
use crate::docker::{run_with_socket, run_systemd};
use crate::docker::{run_docker, run_systemd};
use crate::common::{dock_ubuntu, dock_centos, dock_debian};


#[test_case("edbtest_bionic", &dock_ubuntu("bionic"))]
#[test_case("edbtest_xenial", &dock_ubuntu("xenial"))]
#[test_case("edbtest_focal", &dock_ubuntu("focal"))]
#[test_case("edbtest_centos7", &dock_centos(7))]
#[test_case("edbtest_centos8", &dock_centos(8))]
#[test_case("edbtest_buster", &dock_debian("buster"))]
#[test_case("edbtest_stretch", &dock_debian("stretch"))]
Expand All @@ -20,6 +19,30 @@ fn package(tagname: &str, dockerfile: &str) -> anyhow::Result<()> {
build_image(context, tagname)?;
run_systemd(tagname, r###"
edgedb server install --version=1-alpha5
edgedb server init test1
ver1=$(edgedb -Itest1 --wait-until-available=30s --tab-separated query '
SELECT sys::get_version_as_str()
')
[[ $ver1 =~ ^1\.0-alpha\.5\+ ]]
edgedb --wait-until-available=30s -Itest1 query '
CREATE TYPE Type1 {
CREATE PROPERTY prop1 -> str;
}
' 'INSERT Type1 { prop1 := "value1" }'
if ! edgedb server upgrade test1 --to-version=1-alpha6; then
res=$?
journalctl -xe
exit $res
fi
ver2=$(edgedb -Itest1 --wait-until-available=30s --tab-separated query '
SELECT sys::get_version_as_str()
')
[[ $ver2 =~ ^1\.0-alpha\.6\+ ]]
val=$(edgedb -Itest1 --wait-until-available=30s --tab-separated \
query 'SELECT Type1 { prop1 }')
test "$val" = "value1"
"###).success();
Ok(())
}
Expand All @@ -37,21 +60,30 @@ fn docker(tagname: &str, dockerfile: &str) -> anyhow::Result<()> {
.add_sudoers()?
.add_bin()?;
build_image(context, tagname)?;
run_with_socket(tagname, r###"
docker ps -q -f 'name=edgedb_test' | xargs -r docker container kill
docker system prune --all --force
docker volume list -q -f 'name=edgedb_test' | xargs -r docker volume rm
run_docker(tagname, r###"
mkdir /tmp/workdir
cd /tmp/workdir
edgedb server install --version=1-alpha6 --method=docker
edgedb server init test1
ver1=$(edgedb -Itest1 --wait-until-available=30s --tab-separated query '
SELECT sys::get_version_as_str()
')
[[ $ver1 =~ ^1\.0-alpha\.6\+ ]]
edgedb --wait-until-available=30s -Itest1 query '
CREATE TYPE Type1 {
CREATE PROPERTY prop1 -> str;
}
' 'INSERT Type1 { prop1 := "value1" }'
edgedb server upgrade test1 --to-nightly
ver2=$(edgedb -Itest1 --wait-until-available=30s --tab-separated query '
SELECT sys::get_version_as_str()
')
[[ $ver2 =~ ^1.0.*\+dev ]]
val=$(edgedb -Itest1 --wait-until-available=30s --tab-separated \
query 'SELECT Type1 { prop1 }')
test "$val" = "value1"
Expand Down

0 comments on commit 68df338

Please sign in to comment.