package main

import (
	"fmt"
	"os"
	"plugin"
)

func main() {

	soPath := os.Args[1]
	//soPath := "/home/cicv/GolandProjects/rosbag-handle/plugin/brakefault.so"

	open, err := plugin.Open(soPath)
	if err != nil {
		fmt.Print("1")
		return
	}
	// 校验 Topic 函数
	topic, err := open.Lookup("Topic")
	if err != nil {
		fmt.Print("2")
		return
	}
	_, ok := topic.(func() string)
	if ok != true {
		fmt.Print("3")
		return
	}
	// 校验 Label 函数
	label, err := open.Lookup("Label")
	if err != nil {
		fmt.Print("4")
		return
	}
	_, ok = label.(func() string)
	if ok != true {
		fmt.Print("5")
		return
	}
	// 校验 Rule 函数
	_, err = open.Lookup("Label")
	if err != nil {
		fmt.Print("6")
		return
	}

	fmt.Print("0")
}