Set-up testing
Basic app directory parsing and executable detection
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
"testing"
|
||||
)
|
||||
|
||||
const (
|
||||
testImage = "https://darkstorm.tech/files/LinuxPATest.sfs"
|
||||
)
|
||||
|
||||
func setupTestEnv() error {
|
||||
_, err := exec.LookPath("unsquashfs")
|
||||
if err != nil {
|
||||
return errors.New("unsquashfs not installed")
|
||||
}
|
||||
fold, err := os.Stat("testing")
|
||||
if os.IsNotExist(err) {
|
||||
err = os.Mkdir("testing", 0777)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fold, err = os.Stat("testing")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else if err != nil {
|
||||
return err
|
||||
}
|
||||
os.RemoveAll("testing/PortableApps")
|
||||
os.RemoveAll("testing/Documents")
|
||||
os.RemoveAll("testing/Start.exe")
|
||||
if !fold.IsDir() {
|
||||
return errors.New("./testing is not a directory!!!")
|
||||
}
|
||||
img, err := os.Open("testing/LinuxPATest.sfs")
|
||||
if os.IsNotExist(err) {
|
||||
img, err = os.Create("testing/LinuxPATest.sfs")
|
||||
if err != nil {
|
||||
return errors.New("Cannot create testing/LinuxPATest.sfs")
|
||||
}
|
||||
resp, err := http.DefaultClient.Get(testImage)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = io.Copy(img, resp.Body)
|
||||
resp.Body.Close()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
err = exec.Command("unsquashfs", "-d", "./testing", "./testing/LinuxPATest.sfs").Run()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func TestStuff(t *testing.T) {
|
||||
setupTestEnv()
|
||||
main()
|
||||
}
|
||||
Reference in New Issue
Block a user