Skip to content

Commit 51592e9

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 <itazur@amazon.com>
1 parent 94660fe commit 51592e9

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,
@@ -377,7 +377,7 @@ def get_firecracker_version_from_toml():
377377
"""
378378
cmd = "cd ../src/firecracker && cargo pkgid | cut -d# -f2 | cut -d: -f2"
379379
_, stdout, _ = check_output(cmd)
380-
return packaging.version.parse(stdout)
380+
return semver.Version.parse(stdout)
381381

382382

383383
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
@@ -11,8 +11,8 @@
1111
import time
1212
from pathlib import Path
1313

14-
import packaging.version
1514
import pytest
15+
import semver
1616

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

926926
cargo_version = get_firecracker_version_from_toml()
927-
api_version = packaging.version.parse(
928-
preboot_response.json()["firecracker_version"]
929-
)
927+
api_version = semver.Version.parse(preboot_response.json()["firecracker_version"])
930928

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

934-
binary_version = packaging.version.parse(test_microvm.firecracker_version)
932+
binary_version = semver.Version.parse(test_microvm.firecracker_version)
935933
assert api_version == binary_version
936934

937935

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:-v80}
71+
DEVCTR_IMAGE_TAG=${DEVCTR_IMAGE_TAG:-v81}
7272

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

0 commit comments

Comments
 (0)