Skip to content

Commit e36e774

Browse files
committed
test: Support pre-release version
The "packaging" library only allows a limited set of pre-release names [1], while the semantic versioning permits any alphanumeric charcters [2]. Use "semver" library instead. [1]: https://github.com/pypa/packaging/blob/7952e97c650cd70962a45018e11b760d7b1e1325/src/packaging/version.py#L122-L127 [2]: https://semver.org/#backusnaur-form-grammar-for-valid-semver-versions Signed-off-by: Takahiro Itazuri <[email protected]>
1 parent a93e9f2 commit e36e774

File tree

7 files changed

+27
-16
lines changed

7 files changed

+27
-16
lines changed

tests/framework/artifacts.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,10 @@ def jailer(self):
7575

7676
@property
7777
def version(self):
78-
"""Return Firecracker's version: `X.Y.Z`."""
79-
# Get the filename, split on '-' and trim the leading 'v'.
80-
# sample: firecracker-v1.2.0
81-
return self.path.name.split("-")[1][1:]
78+
"""Return Firecracker's version: `X.Y.Z-prerelase`."""
79+
# Get the filename, split on the first '-' and trim the leading 'v'.
80+
# sample: firecracker-v1.2.0-alpha
81+
return self.path.name.split("-", 1)[1][1:]
8282

8383
@property
8484
def version_tuple(self):
@@ -132,7 +132,7 @@ def working_version_as_artifact():
132132
Return working copy of Firecracker as a release artifact
133133
"""
134134
cargo_version = get_firecracker_version_from_toml()
135-
return FirecrackerArtifact(current_release(cargo_version.base_version)[0])
135+
return FirecrackerArtifact(current_release(str(cargo_version))[0])
136136

137137

138138
def firecracker_artifacts():

tests/framework/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
from contextlib import contextmanager
1717
from typing import Dict
1818

19-
import packaging.version
2019
import psutil
20+
import semver
2121
from tenacity import (
2222
Retrying,
2323
retry,
@@ -381,7 +381,7 @@ def get_firecracker_version_from_toml():
381381
"""
382382
cmd = "cd ../src/firecracker && cargo pkgid | cut -d# -f2 | cut -d: -f2"
383383
_, stdout, _ = check_output(cmd)
384-
return packaging.version.parse(stdout)
384+
return semver.Version.parse(stdout)
385385

386386

387387
def get_kernel_version(level=2):

tests/integration_tests/functional/test_api.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
import resource
1111
from pathlib import Path
1212

13-
import packaging.version
1413
import pytest
14+
import semver
1515

1616
import host_tools.drive as drive_tools
1717
import host_tools.network as net_tools
@@ -923,14 +923,12 @@ def test_api_version(uvm_plain):
923923
assert preboot_response.json() == postboot_response.json()
924924

925925
cargo_version = get_firecracker_version_from_toml()
926-
api_version = packaging.version.parse(
927-
preboot_response.json()["firecracker_version"]
928-
)
926+
api_version = semver.Version.parse(preboot_response.json()["firecracker_version"])
929927

930928
# Cargo version should match FC API version
931929
assert cargo_version == api_version
932930

933-
binary_version = packaging.version.parse(test_microvm.firecracker_version)
931+
binary_version = semver.Version.parse(test_microvm.firecracker_version)
934932
assert api_version == binary_version
935933

936934

tools/devctr/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ RUN cd /usr/include/$ARCH-linux-musl \
156156
&& ln -s ../asm-generic asm-generic
157157

158158
# Install static version of libseccomp
159-
# We need to compile from source because
159+
# We need to compile from source because
160160
# libseccomp provided by the distribution is not
161161
# compiled with musl-gcc and we need this
162162
# for our musl builds.

tools/devctr/poetry.lock

Lines changed: 14 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tools/devctr/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ requests-unixsocket2 = "^0.4.0"
3434
scipy = "^1.11.2"
3535
setproctitle = "^1.3.2"
3636
tenacity = "^8.2.2"
37+
semver = "^3.0.4"
3738

3839

3940
[tool.poetry.group.dev.dependencies]

tools/devtool

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
DEVCTR_IMAGE_NO_TAG="public.ecr.aws/firecracker/fcuvm"
6969

7070
# Development container tag
71-
DEVCTR_IMAGE_TAG=${DEVCTR_IMAGE_TAG:-v81}
71+
DEVCTR_IMAGE_TAG=${DEVCTR_IMAGE_TAG:-v82}
7272

7373
# Development container image (name:tag)
7474
# This should be updated whenever we upgrade the development container.

0 commit comments

Comments
 (0)