Shows how to use a go directory for passing an NULL terminated argv type array. This also exercises the bug in the previous commit. That's why the call1 function isn't assigned to zero, that the only case where that bug happens. Signed-off-by: Corey Minyard <cminyard@mvista.com>
38 lines
644 B
Go
38 lines
644 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"swigtests/example"
|
|
)
|
|
|
|
type mycallbacks struct {
|
|
example.Callbacks
|
|
}
|
|
|
|
var tststrs = []string{ "A", "BCD", "EFGH" }
|
|
var tstint int = 5
|
|
|
|
func (v *mycallbacks) Call1(val int, strarray []string) bool {
|
|
var rv bool = true
|
|
|
|
for i, s := range strarray {
|
|
fmt.Printf("%d: %s\n", i, s)
|
|
if s != tststrs[i] {
|
|
fmt.Printf(" ***Mismatch, expected %s\n", tststrs[i])
|
|
rv = false
|
|
}
|
|
}
|
|
if val != tstint {
|
|
rv = false
|
|
}
|
|
return rv
|
|
}
|
|
|
|
func main() {
|
|
cbs := &mycallbacks{}
|
|
cbs.Callbacks = example.NewDirectorCallbacks(cbs)
|
|
worked := example.Check1(cbs, tstint, tststrs)
|
|
if !worked {
|
|
panic("Data mismatch")
|
|
}
|
|
}
|