github.com/avfs/avfs@v0.33.1-0.20240303173310-c6ba67c33eb7/vfs/mountfs/mountfs_test.go (about)

     1  //
     2  //  Copyright 2022 The AVFS authors
     3  //
     4  //  Licensed under the Apache License, Version 2.0 (the "License");
     5  //  you may not use this file except in compliance with the License.
     6  //  You may obtain a copy of the License at
     7  //
     8  //  	http://www.apache.org/licenses/LICENSE-2.0
     9  //
    10  //  Unless required by applicable law or agreed to in writing, software
    11  //  distributed under the License is distributed on an "AS IS" BASIS,
    12  //  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  //  See the License for the specific language governing permissions and
    14  //  limitations under the License.
    15  //
    16  
    17  //go:build !avfs_race
    18  
    19  package mountfs_test
    20  
    21  import (
    22  	"testing"
    23  
    24  	"github.com/avfs/avfs"
    25  	"github.com/avfs/avfs/idm/memidm"
    26  	"github.com/avfs/avfs/test"
    27  	"github.com/avfs/avfs/vfs/memfs"
    28  	"github.com/avfs/avfs/vfs/mountfs"
    29  )
    30  
    31  var (
    32  	// Tests that mountfs.MountFS struct implements avfs.VFS interface.
    33  	_ avfs.VFS = &mountfs.MountFS{}
    34  
    35  	// Tests that mountfs.MountFile struct implements avfs.File interface.
    36  	_ avfs.File = &mountfs.MountFile{}
    37  )
    38  
    39  func initFS(tb testing.TB) *mountfs.MountFS {
    40  	idm := memidm.New()
    41  	rootFS := memfs.NewWithOptions(&memfs.Options{Idm: idm, Name: "rootFS"})
    42  	tmpFS := memfs.NewWithOptions(&memfs.Options{Idm: idm, Name: "tmpFS"})
    43  
    44  	vfs := mountfs.New(rootFS, "")
    45  
    46  	err := vfs.Mount(tmpFS, "/tmp", "")
    47  	if err != nil {
    48  		tb.Fatalf("Can't mount /tmp file system : %v", err)
    49  	}
    50  
    51  	return vfs
    52  }
    53  
    54  func TestMountFS(t *testing.T) {
    55  	vfs := initFS(t)
    56  	ts := test.NewSuiteFS(t, vfs, vfs)
    57  	ts.TestVFSAll(t)
    58  }