Started work on proper tests.

STILL HAVING STUPID UNEXPLAINABLE NIL POINTERS.
This commit is contained in:
Caleb Gardner
2022-06-18 01:32:51 -05:00
parent 8613e35221
commit cde6a265a1
6 changed files with 121 additions and 22 deletions
+11 -12
View File
@@ -8,29 +8,29 @@ import (
"github.com/CalebQ42/squashfs/internal/inode"
)
type FileInfo struct {
type fileInfo struct {
e directory.Entry
size int64
perm uint32
modTime uint32
}
func (r Reader) newFileInfo(e directory.Entry) (FileInfo, error) {
func (r Reader) newFileInfo(e directory.Entry) (fileInfo, error) {
i, err := r.inodeFromDir(e)
if err != nil {
return FileInfo{}, err
return fileInfo{}, err
}
return newFileInfo(e, i), nil
}
func newFileInfo(e directory.Entry, i inode.Inode) FileInfo {
func newFileInfo(e directory.Entry, i inode.Inode) fileInfo {
var size int64
if i.Type == inode.Fil {
size = int64(i.Data.(inode.File).Size)
} else if i.Type == inode.EFil {
size = int64(i.Data.(inode.EFile).Size)
}
return FileInfo{
return fileInfo{
e: e,
size: size,
perm: uint32(i.Perm),
@@ -38,30 +38,29 @@ func newFileInfo(e directory.Entry, i inode.Inode) FileInfo {
}
}
func (f FileInfo) Name() string {
func (f fileInfo) Name() string {
return f.e.Name
}
func (f FileInfo) Size() int64 {
func (f fileInfo) Size() int64 {
return f.size
}
func (f FileInfo) Mode() fs.FileMode {
func (f fileInfo) Mode() fs.FileMode {
if f.IsDir() {
return fs.FileMode(f.perm | uint32(fs.ModeDir))
}
return fs.FileMode(f.perm)
}
func (f FileInfo) ModTime() time.Time {
func (f fileInfo) ModTime() time.Time {
return time.Unix(int64(f.modTime), 0)
}
func (f FileInfo) IsDir() bool {
func (f fileInfo) IsDir() bool {
return f.e.Type == inode.Dir
}
func (f FileInfo) Sys() any {
//TODO
func (f fileInfo) Sys() any {
return nil
}