aboutsummaryrefslogtreecommitdiff
path: root/lib/memfs/internal/test
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2023-11-02 21:30:49 +0700
committerShulhan <ms@kilabit.info>2023-11-05 12:02:52 +0700
commit3dbed6f1d8e797af40d8fe4eefe5c30bf89ffce7 (patch)
tree3f0ab88c6b0d8be98a83ca39117584fdf9d9ec52 /lib/memfs/internal/test
parentd714934c3b42d9fba7c8751532f92cb61c23e1e2 (diff)
downloadpakakeh.go-3dbed6f1d8e797af40d8fe4eefe5c30bf89ffce7.tar.xz
lib/memfs: include empty directory
Even thought empty directory does not contains file, from the parent node _it is_ part of their content. Also, there is a use case where memfs use as virtual file system (VFS), as a layer with file system, where user can view list of directory, create a directory or file on the fly. If we skip scanning empty directory, that directory will not be visible.
Diffstat (limited to 'lib/memfs/internal/test')
-rw-r--r--lib/memfs/internal/test/embed/embed_test.go43
-rw-r--r--lib/memfs/internal/test/embed/memfs_embed_test.go2
-rw-r--r--lib/memfs/internal/test/embed_disable_modtime/embed_test.go41
-rw-r--r--lib/memfs/internal/test/embed_disable_modtime/memfs_embed_test.go2
4 files changed, 84 insertions, 4 deletions
diff --git a/lib/memfs/internal/test/embed/embed_test.go b/lib/memfs/internal/test/embed/embed_test.go
index f36f5638..01dd0133 100644
--- a/lib/memfs/internal/test/embed/embed_test.go
+++ b/lib/memfs/internal/test/embed/embed_test.go
@@ -101,12 +101,27 @@ func generate_testdata_exclude() *memfs.Node {
node.SetModTimeUnix(1633792794, 467899662)
node.SetName("exclude")
node.SetSize(0)
+ node.AddChild(_memFS_getNode(memFS, "/exclude/dir", generate_testdata_exclude_dir))
node.AddChild(_memFS_getNode(memFS, "/exclude/index-link.css", generate_testdata_exclude_index_link_css))
node.AddChild(_memFS_getNode(memFS, "/exclude/index-link.html", generate_testdata_exclude_index_link_html))
node.AddChild(_memFS_getNode(memFS, "/exclude/index-link.js", generate_testdata_exclude_index_link_js))
return node
}
+func generate_testdata_exclude_dir() *memfs.Node {
+ var node = &memfs.Node{
+ SysPath: "testdata/exclude/dir",
+ Path: "/exclude/dir",
+ ContentType: "",
+ GenFuncName: "generate_testdata_exclude_dir",
+ }
+ node.SetMode(2147484096)
+ node.SetModTimeUnix(1629620045, 798024232)
+ node.SetName("dir")
+ node.SetSize(0)
+ return node
+}
+
func generate_testdata_exclude_index_link_css() *memfs.Node {
var node = &memfs.Node{
SysPath: "testdata/exclude/index-link.css",
@@ -163,12 +178,27 @@ func generate_testdata_include() *memfs.Node {
node.SetModTimeUnix(1629623653, 749800911)
node.SetName("include")
node.SetSize(0)
+ node.AddChild(_memFS_getNode(memFS, "/include/dir", generate_testdata_include_dir))
node.AddChild(_memFS_getNode(memFS, "/include/index.css", generate_testdata_include_index_css))
node.AddChild(_memFS_getNode(memFS, "/include/index.html", generate_testdata_include_index_html))
node.AddChild(_memFS_getNode(memFS, "/include/index.js", generate_testdata_include_index_js))
return node
}
+func generate_testdata_include_dir() *memfs.Node {
+ var node = &memfs.Node{
+ SysPath: "testdata/include/dir",
+ Path: "/include/dir",
+ ContentType: "",
+ GenFuncName: "generate_testdata_include_dir",
+ }
+ node.SetMode(2147484096)
+ node.SetModTimeUnix(1564836597, 0)
+ node.SetName("dir")
+ node.SetSize(0)
+ return node
+}
+
func generate_testdata_include_index_css() *memfs.Node {
var node = &memfs.Node{
SysPath: "testdata/include/index.css",
@@ -288,7 +318,7 @@ func init() {
memFS = &memfs.MemFS{
PathNodes: memfs.NewPathNode(),
Opts: &memfs.Options{
- Root: "testdata",
+ Root: "testdata",
MaxFileSize: 5242880,
Includes: []string{
},
@@ -297,7 +327,7 @@ func init() {
`.*/node_save$`,
},
Embed: memfs.EmbedOptions{
- CommentHeader: `// SPDX-FileCopyrightText: 2022 Shulhan <ms@kilabit.info>
+ CommentHeader: `// SPDX-FileCopyrightText: 2022 Shulhan <ms@kilabit.info>
// SPDX-License-Identifier: AGPL-3.0-or-later
`,
PackageName: "embed",
@@ -319,6 +349,8 @@ func init() {
_memFS_getNode(memFS, "/direct/add/file2", generate_testdata_direct_add_file2))
memFS.PathNodes.Set("/exclude",
_memFS_getNode(memFS, "/exclude", generate_testdata_exclude))
+ memFS.PathNodes.Set("/exclude/dir",
+ _memFS_getNode(memFS, "/exclude/dir", generate_testdata_exclude_dir))
memFS.PathNodes.Set("/exclude/index-link.css",
_memFS_getNode(memFS, "/exclude/index-link.css", generate_testdata_exclude_index_link_css))
memFS.PathNodes.Set("/exclude/index-link.html",
@@ -327,6 +359,8 @@ func init() {
_memFS_getNode(memFS, "/exclude/index-link.js", generate_testdata_exclude_index_link_js))
memFS.PathNodes.Set("/include",
_memFS_getNode(memFS, "/include", generate_testdata_include))
+ memFS.PathNodes.Set("/include/dir",
+ _memFS_getNode(memFS, "/include/dir", generate_testdata_include_dir))
memFS.PathNodes.Set("/include/index.css",
_memFS_getNode(memFS, "/include/index.css", generate_testdata_include_index_css))
memFS.PathNodes.Set("/include/index.html",
@@ -343,4 +377,9 @@ func init() {
_memFS_getNode(memFS, "/plain", generate_testdata_plain))
memFS.Root = memFS.PathNodes.Get("/")
+
+ var err = memFS.Init()
+ if err != nil {
+ panic("memFS: " + err.Error())
+ }
}
diff --git a/lib/memfs/internal/test/embed/memfs_embed_test.go b/lib/memfs/internal/test/embed/memfs_embed_test.go
index 5cd447d4..a7a5d789 100644
--- a/lib/memfs/internal/test/embed/memfs_embed_test.go
+++ b/lib/memfs/internal/test/embed/memfs_embed_test.go
@@ -101,6 +101,7 @@ func TestNode_Readdir(t *testing.T) {
}, {
path: "/exclude",
exp: []string{
+ "dir",
"index-link.css",
"index-link.html",
"index-link.js",
@@ -108,6 +109,7 @@ func TestNode_Readdir(t *testing.T) {
}, {
path: "/include",
exp: []string{
+ "dir",
"index.css",
"index.html",
"index.js",
diff --git a/lib/memfs/internal/test/embed_disable_modtime/embed_test.go b/lib/memfs/internal/test/embed_disable_modtime/embed_test.go
index dcdc562b..05bb83ed 100644
--- a/lib/memfs/internal/test/embed_disable_modtime/embed_test.go
+++ b/lib/memfs/internal/test/embed_disable_modtime/embed_test.go
@@ -93,12 +93,26 @@ func generate_testdata_exclude() *memfs.Node {
node.SetMode(2147484141)
node.SetName("exclude")
node.SetSize(0)
+ node.AddChild(_memFS_getNode(memFS, "/exclude/dir", generate_testdata_exclude_dir))
node.AddChild(_memFS_getNode(memFS, "/exclude/index-link.css", generate_testdata_exclude_index_link_css))
node.AddChild(_memFS_getNode(memFS, "/exclude/index-link.html", generate_testdata_exclude_index_link_html))
node.AddChild(_memFS_getNode(memFS, "/exclude/index-link.js", generate_testdata_exclude_index_link_js))
return node
}
+func generate_testdata_exclude_dir() *memfs.Node {
+ var node = &memfs.Node{
+ SysPath: "testdata/exclude/dir",
+ Path: "/exclude/dir",
+ ContentType: "",
+ GenFuncName: "generate_testdata_exclude_dir",
+ }
+ node.SetMode(2147484096)
+ node.SetName("dir")
+ node.SetSize(0)
+ return node
+}
+
func generate_testdata_exclude_index_link_css() *memfs.Node {
var node = &memfs.Node{
SysPath: "testdata/exclude/index-link.css",
@@ -151,12 +165,26 @@ func generate_testdata_include() *memfs.Node {
node.SetMode(2147484141)
node.SetName("include")
node.SetSize(0)
+ node.AddChild(_memFS_getNode(memFS, "/include/dir", generate_testdata_include_dir))
node.AddChild(_memFS_getNode(memFS, "/include/index.css", generate_testdata_include_index_css))
node.AddChild(_memFS_getNode(memFS, "/include/index.html", generate_testdata_include_index_html))
node.AddChild(_memFS_getNode(memFS, "/include/index.js", generate_testdata_include_index_js))
return node
}
+func generate_testdata_include_dir() *memfs.Node {
+ var node = &memfs.Node{
+ SysPath: "testdata/include/dir",
+ Path: "/include/dir",
+ ContentType: "",
+ GenFuncName: "generate_testdata_include_dir",
+ }
+ node.SetMode(2147484096)
+ node.SetName("dir")
+ node.SetSize(0)
+ return node
+}
+
func generate_testdata_include_index_css() *memfs.Node {
var node = &memfs.Node{
SysPath: "testdata/include/index.css",
@@ -269,7 +297,7 @@ func init() {
memFS = &memfs.MemFS{
PathNodes: memfs.NewPathNode(),
Opts: &memfs.Options{
- Root: "testdata",
+ Root: "testdata",
MaxFileSize: 5242880,
Includes: []string{
},
@@ -278,7 +306,7 @@ func init() {
`.*/node_save$`,
},
Embed: memfs.EmbedOptions{
- CommentHeader: ``,
+ CommentHeader: ``,
PackageName: "embed",
VarName: "memFS",
GoFileName: "./internal/test/embed_disable_modtime/embed_test.go",
@@ -298,6 +326,8 @@ func init() {
_memFS_getNode(memFS, "/direct/add/file2", generate_testdata_direct_add_file2))
memFS.PathNodes.Set("/exclude",
_memFS_getNode(memFS, "/exclude", generate_testdata_exclude))
+ memFS.PathNodes.Set("/exclude/dir",
+ _memFS_getNode(memFS, "/exclude/dir", generate_testdata_exclude_dir))
memFS.PathNodes.Set("/exclude/index-link.css",
_memFS_getNode(memFS, "/exclude/index-link.css", generate_testdata_exclude_index_link_css))
memFS.PathNodes.Set("/exclude/index-link.html",
@@ -306,6 +336,8 @@ func init() {
_memFS_getNode(memFS, "/exclude/index-link.js", generate_testdata_exclude_index_link_js))
memFS.PathNodes.Set("/include",
_memFS_getNode(memFS, "/include", generate_testdata_include))
+ memFS.PathNodes.Set("/include/dir",
+ _memFS_getNode(memFS, "/include/dir", generate_testdata_include_dir))
memFS.PathNodes.Set("/include/index.css",
_memFS_getNode(memFS, "/include/index.css", generate_testdata_include_index_css))
memFS.PathNodes.Set("/include/index.html",
@@ -322,4 +354,9 @@ func init() {
_memFS_getNode(memFS, "/plain", generate_testdata_plain))
memFS.Root = memFS.PathNodes.Get("/")
+
+ var err = memFS.Init()
+ if err != nil {
+ panic("memFS: " + err.Error())
+ }
}
diff --git a/lib/memfs/internal/test/embed_disable_modtime/memfs_embed_test.go b/lib/memfs/internal/test/embed_disable_modtime/memfs_embed_test.go
index 5cd447d4..a7a5d789 100644
--- a/lib/memfs/internal/test/embed_disable_modtime/memfs_embed_test.go
+++ b/lib/memfs/internal/test/embed_disable_modtime/memfs_embed_test.go
@@ -101,6 +101,7 @@ func TestNode_Readdir(t *testing.T) {
}, {
path: "/exclude",
exp: []string{
+ "dir",
"index-link.css",
"index-link.html",
"index-link.js",
@@ -108,6 +109,7 @@ func TestNode_Readdir(t *testing.T) {
}, {
path: "/include",
exp: []string{
+ "dir",
"index.css",
"index.html",
"index.js",