@@ -41,6 +41,12 @@ func main() {
4141 log .Fatalf ("build dockerfile failure: %v" , err )
4242 }
4343
44+ // generate scenarios.sh to start the plugin test case
45+ err = RenderScenariosScript (context )
46+ if err != nil {
47+ log .Fatalf ("build scenarios failure: %v" , err )
48+ }
49+
4450 // generate docker-compose.yml to run the plugin
4551 err = RenderDockerCompose (context )
4652 if err != nil {
@@ -53,10 +59,12 @@ func main() {
5359 log .Fatalf ("build validator failure: %v" , err )
5460 }
5561
56- // generate scenarios.sh to start the plugin test case
57- err = RenderScenariosScript (context )
58- if err != nil {
59- log .Fatalf ("build scenarios failure: %v" , err )
62+ // generate validator.sh to validate the plugin
63+ if context .IsWindows {
64+ err = RenderWSLScenariosScript (context )
65+ if err != nil {
66+ log .Fatalf ("windows build wsl-scenarios failure: %v" , err )
67+ }
6068 }
6169}
6270
@@ -89,46 +97,85 @@ func RenderDockerFile(context *Context) error {
8997 return os .WriteFile (filepath .Join (context .WorkSpaceDir , "Dockerfile" ), []byte (render ), 0o600 )
9098}
9199
100+ func RenderScenariosScript (context * Context ) error {
101+ tplName := "scenarios.tpl"
102+ dockerComposeFilePath := filepath .Join (context .WorkSpaceDir , "docker-compose.yml" )
103+ if context .IsWindows {
104+ tplName = "windows-scenarios.tpl"
105+ dockerComposeFilePath = strings .ReplaceAll (dockerComposeFilePath , `\` , `/` )
106+ }
107+
108+ render , err := templates .Render (tplName , struct {
109+ DockerComposeFilePath string
110+ Context * Context
111+ }{
112+ DockerComposeFilePath : dockerComposeFilePath ,
113+ Context : context ,
114+ })
115+ if err != nil {
116+ return err
117+ }
118+ render = strings .ReplaceAll (render , "\r \n " , "\n " )
119+ return os .WriteFile (filepath .Join (context .WorkSpaceDir , "scenarios.sh" ), []byte (render ), 0o600 )
120+ }
121+
92122func RenderDockerCompose (context * Context ) error {
93123 rel , err := filepath .Rel (context .ProjectDir , filepath .Join (context .WorkSpaceDir , "Dockerfile" ))
94124 if err != nil {
95125 return err
96126 }
97- render , err := templates .Render ("docker-compose.tpl" , struct {
127+
128+ dir := context .WorkSpaceDir
129+
130+ tplName := "docker-compose.tpl"
131+ if context .IsWindows {
132+ tplName = "windows-docker-compose.tpl"
133+ context .WorkSpaceDir = "/root/repo/skywalking-go/test/plugins/workspace/" + context .ScenarioName + "/" + context .CaseName
134+ }
135+
136+ render , err := templates .Render (tplName , struct {
98137 DockerFilePathRelateToProject string
99138 Context * Context
100139 }{
101140 DockerFilePathRelateToProject : rel ,
102141 Context : context ,
103142 })
143+ context .WorkSpaceDir = dir
104144 if err != nil {
105145 return err
106146 }
107147 return os .WriteFile (filepath .Join (context .WorkSpaceDir , "docker-compose.yml" ), []byte (render ), 0o600 )
108148}
109149
110150func RenderValidatorScript (context * Context ) error {
111- render , err := templates .Render ("validator.tpl" , struct {
151+ tplName := "validator.tpl"
152+ if context .IsWindows {
153+ tplName = "windows-validator.tpl"
154+ }
155+ render , err := templates .Render (tplName , struct {
112156 Context * Context
113157 }{
114158 Context : context ,
115159 })
116160 if err != nil {
117161 return err
118162 }
163+ render = strings .ReplaceAll (render , "\r \n " , "\n " )
119164 return os .WriteFile (filepath .Join (context .WorkSpaceDir , "validator.sh" ), []byte (render ), 0o600 )
120165}
121166
122- func RenderScenariosScript (context * Context ) error {
123- render , err := templates .Render ("scenarios.tpl" , struct {
124- DockerComposeFilePath string
125- Context * Context
167+ func RenderWSLScenariosScript (context * Context ) error {
168+ dir := context .WorkSpaceDir
169+ context .WorkSpaceDir = "/root/repo/skywalking-go/test/plugins/workspace/" + context .ScenarioName + "/" + context .CaseName
170+ render , err := templates .Render ("wsl-scenarios.tpl" , struct {
171+ Context * Context
126172 }{
127- DockerComposeFilePath : filepath .Join (context .WorkSpaceDir , "docker-compose.yml" ),
128- Context : context ,
173+ Context : context ,
129174 })
130175 if err != nil {
131176 return err
132177 }
133- return os .WriteFile (filepath .Join (context .WorkSpaceDir , "scenarios.sh" ), []byte (render ), 0o600 )
178+ render = strings .ReplaceAll (render , "\r \n " , "\n " )
179+ context .WorkSpaceDir = dir
180+ return os .WriteFile (filepath .Join (context .WorkSpaceDir , "wsl-scenarios.sh" ), []byte (render ), 0o600 )
134181}
0 commit comments