Files
wehub-resource-sync bf9395e022
CI / license-header (push) Has been skipped
CI / e2e-dry-run (push) Has been skipped
CI / fast-gate (push) Failing after 0s
Test PR Label Logic / test-pr-labels (push) Failing after 1s
Skill Format Check / check-format (push) Failing after 2s
CI / security (push) Failing after 5s
CI / unit-test (push) Has been skipped
CI / lint (push) Has been skipped
CI / script-test (push) Has been skipped
CI / deterministic-gate (push) Has been skipped
CI / coverage (push) Has been skipped
CI / results (push) Has been cancelled
CI / deadcode (push) Has been cancelled
CI / e2e-live (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:22:54 +08:00

121 lines
2.4 KiB
Go

// Copyright (c) 2026 Lark Technologies Pte. Ltd.
// SPDX-License-Identifier: MIT
package vfs
import (
"os"
"path/filepath"
"testing"
)
func TestOsFsImplementsFS(t *testing.T) {
var _ FS = OsFs{}
}
func TestDefaultFSIsOsFs(t *testing.T) {
if _, ok := DefaultFS.(OsFs); !ok {
t.Fatal("DefaultFS should be OsFs")
}
}
func TestOsFsBasicOperations(t *testing.T) {
fs := OsFs{}
dir := t.TempDir()
// MkdirAll
sub := filepath.Join(dir, "a", "b")
if err := fs.MkdirAll(sub, 0o755); err != nil {
t.Fatalf("MkdirAll: %v", err)
}
// WriteFile + ReadFile
p := filepath.Join(sub, "test.txt")
if err := fs.WriteFile(p, []byte("hello"), 0o644); err != nil {
t.Fatalf("WriteFile: %v", err)
}
data, err := fs.ReadFile(p)
if err != nil {
t.Fatalf("ReadFile: %v", err)
}
if string(data) != "hello" {
t.Fatalf("ReadFile got %q, want %q", data, "hello")
}
// Stat
info, err := fs.Stat(p)
if err != nil {
t.Fatalf("Stat: %v", err)
}
if info.Name() != "test.txt" {
t.Fatalf("Stat name got %q", info.Name())
}
// Lstat
info, err = fs.Lstat(p)
if err != nil {
t.Fatalf("Lstat: %v", err)
}
if info.Name() != "test.txt" {
t.Fatalf("Lstat name got %q", info.Name())
}
// Rename
p2 := filepath.Join(sub, "test2.txt")
if err := fs.Rename(p, p2); err != nil {
t.Fatalf("Rename: %v", err)
}
// Open
f, err := fs.Open(p2)
if err != nil {
t.Fatalf("Open: %v", err)
}
f.Close()
// OpenFile
f, err = fs.OpenFile(p2, os.O_RDONLY, 0)
if err != nil {
t.Fatalf("OpenFile: %v", err)
}
f.Close()
// CreateTemp
f, err = fs.CreateTemp(dir, "tmp-*")
if err != nil {
t.Fatalf("CreateTemp: %v", err)
}
tmpName := f.Name()
f.Close()
// Remove
if err := fs.Remove(tmpName); err != nil {
t.Fatalf("Remove: %v", err)
}
// MkdirTemp + RemoveAll (non-empty directory)
tmpDir, err := fs.MkdirTemp(dir, "tmp-dir-*")
if err != nil {
t.Fatalf("MkdirTemp: %v", err)
}
if err := fs.WriteFile(filepath.Join(tmpDir, "inner.txt"), []byte("x"), 0o644); err != nil {
t.Fatalf("WriteFile in temp dir: %v", err)
}
if err := fs.RemoveAll(tmpDir); err != nil {
t.Fatalf("RemoveAll: %v", err)
}
if _, err := fs.Stat(tmpDir); !os.IsNotExist(err) {
t.Fatalf("RemoveAll should delete the directory tree, stat err = %v", err)
}
// Getwd
if _, err := fs.Getwd(); err != nil {
t.Fatalf("Getwd: %v", err)
}
// UserHomeDir
if _, err := fs.UserHomeDir(); err != nil {
t.Fatalf("UserHomeDir: %v", err)
}
}