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

     1  //
     2  //  Copyright 2020 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 rofs_test
    20  
    21  import (
    22  	"testing"
    23  
    24  	"github.com/avfs/avfs"
    25  	"github.com/avfs/avfs/test"
    26  	"github.com/avfs/avfs/vfs/memfs"
    27  	"github.com/avfs/avfs/vfs/rofs"
    28  )
    29  
    30  var (
    31  	// Tests that rofs.RoFS struct implements avfs.VFS interface.
    32  	_ avfs.VFS = &rofs.RoFS{}
    33  
    34  	// Tests that rofs.RoFile struct implements avfs.File interface.
    35  	_ avfs.File = &rofs.RoFile{}
    36  )
    37  
    38  func initTest(t *testing.T) *test.Suite {
    39  	vfsSetup := memfs.New()
    40  	vfs := rofs.New(vfsSetup)
    41  
    42  	ts := test.NewSuiteFS(t, vfsSetup, vfs)
    43  
    44  	return ts
    45  }
    46  
    47  func TestRoFS(t *testing.T) {
    48  	ts := initTest(t)
    49  	ts.TestVFSAll(t)
    50  }
    51  
    52  func TestRoFSConfig(t *testing.T) {
    53  	vfsWrite := memfs.New()
    54  	vfs := rofs.New(vfsWrite)
    55  
    56  	wantFeatures := vfs.Features()&^avfs.FeatIdentityMgr | avfs.FeatReadOnly
    57  	if vfs.Features() != wantFeatures {
    58  		t.Errorf("Features : want Features to be %s, got %s", wantFeatures, vfs.Features())
    59  	}
    60  
    61  	name := vfs.Name()
    62  	if name != "" {
    63  		t.Errorf("Name : want name to be empty, got %v", name)
    64  	}
    65  
    66  	osType := vfs.OSType()
    67  	if osType != vfsWrite.OSType() {
    68  		t.Errorf("OSType : want os type to be %v, got %v", vfsWrite.OSType(), osType)
    69  	}
    70  }