Skip to content

Commit

Permalink
llcppsymg & llcppsigfetch parse args
Browse files Browse the repository at this point in the history
  • Loading branch information
luoliwoshang committed Oct 18, 2024
1 parent ce721f8 commit da615cc
Show file tree
Hide file tree
Showing 2 changed files with 111 additions and 0 deletions.
63 changes: 63 additions & 0 deletions chore/_xtool/llcppsymg/_cmptest/args/args.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package main

import (
"fmt"

"github.com/goplus/llgo/chore/_xtool/llcppsymg/args"
)

func main() {
TestParseArgs()
}

func TestParseArgs() {
fmt.Println("=== Test ParseArgs ===")

swflags := map[string]bool{
"--extract": true,
}

testCases := []struct {
name string
input []string
}{
{
name: "Basic flags",
input: []string{"-h", "-v", "-"},
},
{
name: "Config file",
input: []string{"lua.llcppg.cfg"},
},
{
name: "Extract with multiple args",
input: []string{"--extract", "file1.h", "file2.h", "-v"},
},
{
name: "Non-skippable flags",
input: []string{"--extract", "file1.h", "file2.h", "-out=true", "-cpp=true", "-v"},
},
{
name: "Mixed flags",
input: []string{"-v", "--extract", "file.h", "-out=true", "config.json"},
},
{
name: "Empty input",
input: []string{},
},
}

for _, tc := range testCases {
fmt.Printf("Test case: %s\n", tc.name)
fmt.Printf("Input: %v\n", tc.input)

result := args.ParseArgs(tc.input, swflags)

fmt.Printf("Help: %v\n", result.Help)
fmt.Printf("Verbose: %v\n", result.Verbose)
fmt.Printf("UseStdin: %v\n", result.UseStdin)
fmt.Printf("CfgFile: %s\n", result.CfgFile)

fmt.Println()
}
}
48 changes: 48 additions & 0 deletions chore/_xtool/llcppsymg/_cmptest/args/llgo.expect
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#stdout
=== Test ParseArgs ===
Test case: Basic flags
Input: [-h -v -]
Help: true
Verbose: true
UseStdin: true
CfgFile: llcppg.cfg

Test case: Config file
Input: [lua.llcppg.cfg]
Help: false
Verbose: false
UseStdin: false
CfgFile: lua.llcppg.cfg

Test case: Extract with multiple args
Input: [--extract file1.h file2.h -v]
Help: false
Verbose: true
UseStdin: false
CfgFile: llcppg.cfg

Test case: Non-skippable flags
Input: [--extract file1.h file2.h -out=true -cpp=true -v]
Help: false
Verbose: true
UseStdin: false
CfgFile: llcppg.cfg

Test case: Mixed flags
Input: [-v --extract file.h -out=true config.json]
Help: false
Verbose: true
UseStdin: false
CfgFile: config.json

Test case: Empty input
Input: []
Help: false
Verbose: false
UseStdin: false
CfgFile: llcppg.cfg


#stderr

#exit 0

0 comments on commit da615cc

Please sign in to comment.