podman
1//go:build !remote
2
3package libpod
4
5import (
6"syscall"
7"testing"
8
9"github.com/stretchr/testify/assert"
10)
11
12func TestLabelVolumePath(t *testing.T) {
13// Set up mocked SELinux functions for testing.
14oldRelabel := lvpRelabel
15oldInitLabels := lvpInitLabels
16oldReleaseLabel := lvpReleaseLabel
17defer func() {
18lvpRelabel = oldRelabel
19lvpInitLabels = oldInitLabels
20lvpReleaseLabel = oldReleaseLabel
21}()
22
23// Relabel returns ENOTSUP unconditionally.
24lvpRelabel = func(path string, fileLabel string, shared bool) error {
25return syscall.ENOTSUP
26}
27
28// InitLabels and ReleaseLabel both return dummy values and nil errors.
29lvpInitLabels = func(options []string) (string, string, error) {
30pLabel := "system_u:system_r:container_t:s0:c1,c2"
31mLabel := "system_u:object_r:container_file_t:s0:c1,c2"
32return pLabel, mLabel, nil
33}
34lvpReleaseLabel = func(label string) error {
35return nil
36}
37
38// LabelVolumePath should not return an error if the operation is unsupported.
39err := LabelVolumePath("/foo/bar", "")
40assert.NoError(t, err)
41}
42