llcppsymg:gendylib path test
llcppsymg:headerpath test
This commit is contained in:
104
chore/_xtool/llcppsymg/header/header_test/header.go
Normal file
104
chore/_xtool/llcppsymg/header/header_test/header.go
Normal file
@@ -0,0 +1,104 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func GenHeaderFilePath(cflags string, files []string) ([]string, error) {
|
||||
prefixPath := strings.TrimPrefix(cflags, "-I")
|
||||
|
||||
var validPaths []string
|
||||
var errs []string
|
||||
|
||||
for _, file := range files {
|
||||
if file == "" {
|
||||
continue
|
||||
}
|
||||
fullPath := filepath.Join(prefixPath, file)
|
||||
if f, err := os.Open(fullPath); err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
errs = append(errs, fmt.Sprintf("file not found: %s", file))
|
||||
} else {
|
||||
errs = append(errs, fmt.Sprintf("error accessing file %s: %v", file, err))
|
||||
}
|
||||
} else {
|
||||
f.Close()
|
||||
validPaths = append(validPaths, fullPath)
|
||||
}
|
||||
}
|
||||
|
||||
if len(validPaths) == 0 && len(errs) == 0 {
|
||||
return nil, fmt.Errorf("no valid header files")
|
||||
}
|
||||
|
||||
if len(errs) > 0 {
|
||||
return validPaths, fmt.Errorf("some files not found or inaccessible: %v", errs)
|
||||
}
|
||||
|
||||
return validPaths, nil
|
||||
}
|
||||
|
||||
func TestGenHeaderFilePath() {
|
||||
fmt.Println("=== Test GenHeaderFilePath ===")
|
||||
|
||||
tempDir := os.TempDir()
|
||||
tempFile1 := filepath.Join(tempDir, "test1.h")
|
||||
tempFile2 := filepath.Join(tempDir, "test2.h")
|
||||
os.Create(tempFile1)
|
||||
os.Create(tempFile2)
|
||||
defer os.Remove(tempFile1)
|
||||
defer os.Remove(tempFile2)
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
cflags string
|
||||
files []string
|
||||
}{
|
||||
{
|
||||
name: "Valid files",
|
||||
cflags: "-I" + tempDir,
|
||||
files: []string{"test1.h", "test2.h"},
|
||||
},
|
||||
{
|
||||
name: "Mixed existing and non-existing files",
|
||||
cflags: "-I" + tempDir,
|
||||
files: []string{"test1.h", "nonexistent.h"},
|
||||
},
|
||||
{
|
||||
name: "No existing files",
|
||||
cflags: "-I" + tempDir,
|
||||
files: []string{"nonexistent1.h", "nonexistent2.h"},
|
||||
},
|
||||
{
|
||||
name: "Empty file list",
|
||||
cflags: "-I/usr/include",
|
||||
files: []string{},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
fmt.Printf("Test case: %s\n", tc.name)
|
||||
fmt.Printf("Input files: %v\n", tc.files)
|
||||
|
||||
result, err := GenHeaderFilePath(tc.cflags, tc.files)
|
||||
|
||||
if err != nil {
|
||||
fmt.Printf("Error: %v\n", err)
|
||||
}
|
||||
if result != nil {
|
||||
relativeResult := make([]string, len(result))
|
||||
for i, path := range result {
|
||||
relativeResult[i] = filepath.Base(path)
|
||||
}
|
||||
fmt.Printf("Output: %v\n", relativeResult)
|
||||
}
|
||||
fmt.Println()
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
TestGenHeaderFilePath()
|
||||
}
|
||||
Reference in New Issue
Block a user