/
upgrade.rs
92 lines (81 loc) · 3.21 KB
/
upgrade.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
use test_case::test_case;
use crate::docker::{Context, build_image};
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_centos8", &dock_centos(8))]
#[test_case("edbtest_buster", &dock_debian("buster"))]
#[test_case("edbtest_stretch", &dock_debian("stretch"))]
fn package(tagname: &str, dockerfile: &str) -> anyhow::Result<()> {
let context = Context::new()
.add_file("Dockerfile", dockerfile)?
.add_sudoers()?
.add_bin()?;
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(())
}
#[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"))]
fn docker(tagname: &str, dockerfile: &str) -> anyhow::Result<()> {
let context = Context::new()
.add_file("Dockerfile", dockerfile)?
.add_sudoers()?
.add_bin()?;
build_image(context, tagname)?;
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"
"###).success();
Ok(())
}