Enable VFS2 to runsc syscall tests

Updates #1487

PiperOrigin-RevId: 314271995
This commit is contained in:
Fabricio Voznika
2020-06-01 23:03:20 -07:00
committed by gVisor bot
parent ca5912d13c
commit 4b5eae39f2
3 changed files with 454 additions and 93 deletions
+44 -5
View File
@@ -60,7 +60,8 @@ def _syscall_test(
network = "none",
file_access = "exclusive",
overlay = False,
add_uds_tree = False):
add_uds_tree = False,
vfs2 = False):
# Prepend "runsc" to non-native platform names.
full_platform = platform if platform == "native" else "runsc_" + platform
@@ -70,6 +71,8 @@ def _syscall_test(
name += "_shared"
if overlay:
name += "_overlay"
if vfs2:
name += "_vfs2"
if network != "none":
name += "_" + network + "net"
@@ -102,6 +105,7 @@ def _syscall_test(
"--file-access=" + file_access,
"--overlay=" + str(overlay),
"--add-uds-tree=" + str(add_uds_tree),
"--vfs2=" + str(vfs2),
]
# Call the rule above.
@@ -123,6 +127,7 @@ def syscall_test(
add_overlay = False,
add_uds_tree = False,
add_hostinet = False,
vfs2 = False,
tags = None):
"""syscall_test is a macro that will create targets for all platforms.
@@ -160,6 +165,29 @@ def syscall_test(
tags = platform_tags + tags,
)
vfs2_tags = list(tags)
if vfs2:
# Add tag to easily run VFS2 tests with --test_tag_filters=vfs2
vfs2_tags.append("vfs2")
else:
# Don't automatically run tests tests not yet passing.
vfs2_tags.append("manual")
vfs2_tags.append("noguitar")
vfs2_tags.append("notap")
_syscall_test(
test = test,
shard_count = shard_count,
size = size,
platform = default_platform,
use_tmpfs = use_tmpfs,
add_uds_tree = add_uds_tree,
tags = platforms[default_platform] + vfs2_tags,
vfs2 = True,
)
# TODO(gvisor.dev/issue/1487): Enable VFS2 overlay tests.
if add_overlay:
_syscall_test(
test = test,
@@ -172,6 +200,18 @@ def syscall_test(
overlay = True,
)
if add_hostinet:
_syscall_test(
test = test,
shard_count = shard_count,
size = size,
platform = default_platform,
use_tmpfs = use_tmpfs,
network = "host",
add_uds_tree = add_uds_tree,
tags = platforms[default_platform] + tags,
)
if not use_tmpfs:
# Also test shared gofer access.
_syscall_test(
@@ -184,15 +224,14 @@ def syscall_test(
tags = platforms[default_platform] + tags,
file_access = "shared",
)
if add_hostinet:
_syscall_test(
test = test,
shard_count = shard_count,
size = size,
platform = default_platform,
use_tmpfs = use_tmpfs,
network = "host",
add_uds_tree = add_uds_tree,
tags = platforms[default_platform] + tags,
tags = platforms[default_platform] + vfs2_tags,
file_access = "shared",
vfs2 = True,
)
+4
View File
@@ -46,6 +46,7 @@ var (
useTmpfs = flag.Bool("use-tmpfs", false, "mounts tmpfs for /tmp")
fileAccess = flag.String("file-access", "exclusive", "mounts root in exclusive or shared mode")
overlay = flag.Bool("overlay", false, "wrap filesystem mounts with writable tmpfs overlay")
vfs2 = flag.Bool("vfs2", false, "enable VFS2")
parallel = flag.Bool("parallel", false, "run tests in parallel")
runscPath = flag.String("runsc", "", "path to runsc binary")
@@ -146,6 +147,9 @@ func runRunsc(tc gtest.TestCase, spec *specs.Spec) error {
if *overlay {
args = append(args, "-overlay")
}
if *vfs2 {
args = append(args, "-vfs2")
}
if *debug {
args = append(args, "-debug", "-log-packets=true")
}
+406 -88
View File
File diff suppressed because it is too large Load Diff