92 lines
1.9 KiB
Go
92 lines
1.9 KiB
Go
package plugin
|
|
|
|
import (
|
|
"fmt"
|
|
"git.sr.ht/~akilan1999/p2p-rendering-computation/config"
|
|
"git.sr.ht/~akilan1999/p2p-rendering-computation/server/docker"
|
|
"strconv"
|
|
"testing"
|
|
)
|
|
|
|
// Test if the dummy plugin added is detected
|
|
func TestDetectPlugins(t *testing.T) {
|
|
_, err := DetectPlugins()
|
|
if err != nil {
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
// Test ensures that the ansible are executed inside local containers
|
|
func TestRunPlugin(t *testing.T) {
|
|
var testips []*ExecuteIP
|
|
var testip1,testip2 ExecuteIP
|
|
|
|
// Create docker container and get SSH port
|
|
container1 ,err := docker.BuildRunContainer(0,"false","")
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
t.Fail()
|
|
}
|
|
|
|
//Test IP 1 configuration
|
|
testip1.IPAddress = "0.0.0.0"
|
|
testip1.SSHPortNo = strconv.Itoa(container1.SSHPort)
|
|
|
|
// Create docker container and get SSH port
|
|
container2 ,err := docker.BuildRunContainer(0,"false","")
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
t.Fail()
|
|
}
|
|
//Test IP 2 configuration
|
|
testip2.IPAddress = "0.0.0.0"
|
|
testip2.SSHPortNo = strconv.Itoa(container2.SSHPort)
|
|
|
|
testips = append(testips, &testip1)
|
|
testips = append(testips, &testip2)
|
|
|
|
_,err = RunPlugin("TestAnsible",testips)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
t.Fail()
|
|
}
|
|
|
|
// Removing container1 after Ansible is executed
|
|
err = docker.StopAndRemoveContainer(container1.ID)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
t.Fail()
|
|
}
|
|
|
|
err = docker.StopAndRemoveContainer(container2.ID)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
// Test to ensure that the ansible host file is modified to
|
|
// the appropriate IP
|
|
func TestExecuteIP_ModifyHost(t *testing.T) {
|
|
var plugin Plugin
|
|
var testip ExecuteIP
|
|
|
|
// Get plugin path from config file
|
|
Config, err := config.ConfigInit()
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
t.Fail()
|
|
}
|
|
//Set plugin name
|
|
plugin.FolderName = "TestAnsible"
|
|
|
|
//Test IP 1 configuration
|
|
testip.IPAddress = "0.0.0.0"
|
|
testip.SSHPortNo = "41289"
|
|
|
|
err = testip.ModifyHost(&plugin,Config.PluginPath)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
t.Fail()
|
|
}
|
|
} |