123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package compiler
- import (
- "io/ioutil"
- "testing"
- "github.com/remogatto/cloud"
- "github.com/remogatto/prettytest"
- )
- type testSuite struct {
- prettytest.Suite
- }
- var (
- compiler *Compiler
- client *cloud.Client
- simpleMain string = `
- package main
- func main() {
- println("Hello World!")
- }
- `
- cloudTemplateProgram string = `
- package main
- import (
- "bytes"
- "fmt"
- "text/template"
- "github.com/remogatto/cloud"
- c "gogs.carducci-dante.gov.it/karmen/config.git"
- )
- func main() {
- var (
- config c.ConfigT
- data struct{ Data string }
- output bytes.Buffer
- )
- client, err := cloud.Dial(config.Cloud.Url, config.Cloud.Username, config.Cloud.Password)
- if err != nil {
- fmt.Print(err)
- }
- configData, err := client.Download("Config/config.yaml")
- if err != nil {
- fmt.Print(err)
- }
- if err := c.Read(configData, &config); err != nil {
- fmt.Print(err)
- }
- content, err := client.Download("Templates/template.tpl")
- if err != nil {
- fmt.Print(err)
- }
- tpl, err := template.New("template.tpl").Parse(string(content))
- if err != nil {
- fmt.Print(err)
- }
- data.Data = "Foo"
- err = tpl.Execute(&output, data)
- if err != nil {
- fmt.Print(err)
- }
- err = client.Mkdir("Test")
- if err != nil {
- fmt.Print(err)
- }
- err = client.Upload(output.Bytes(), "Test/foo.txt")
- if err != nil {
- fmt.Print(err)
- }
- fmt.Print("ok")
- }
- `
- )
- func TestRunner(t *testing.T) {
- prettytest.Run(
- t,
- new(testSuite),
- )
- }
- func (t *testSuite) BeforeAll() {
- var err error
- compiler = New("http://localhost:8080/compile")
- client, err = cloud.Dial(
- "http://localhost:8082/remote.php/webdav/",
- "admin",
- "password",
- )
- if err != nil {
- panic(err)
- }
- if !client.Exists("Templates") {
- if err := client.Mkdir("Templates"); err != nil {
- panic(err)
- }
- }
- templateData, err := ioutil.ReadFile("testdata/template.tpl")
- if err != nil {
- panic(err)
- }
- if err := client.Upload(templateData, "Templates/template.tpl"); err != nil {
- panic(err)
- }
- if !client.Exists("Config") {
- if err := client.Mkdir("Config"); err != nil {
- panic(err)
- }
- }
- configData, err := ioutil.ReadFile("testdata/config.yaml")
- if err != nil {
- panic(err)
- }
- if err := client.Upload(configData, "Config/config.yaml"); err != nil {
- panic(err)
- }
- }
- func (t *testSuite) TestRunSimpleMain() {
- program := &Program{simpleMain}
- result, err := compiler.Run(program)
- t.Nil(err)
- if err == nil {
- t.Equal("Hello World!\n", result.Events[0].Message)
- }
- }
- func (t *testSuite) TestCloudTemplate() {
- program := &Program{cloudTemplateProgram}
- result, err := compiler.Run(program)
- t.Nil(err)
- if err == nil {
- t.Equal("", result.Errors)
- if result.Errors == "" {
- t.Equal("ok", result.Events[0].Message)
- data, err := client.Download("Test/foo.txt")
- t.Nil(err)
- t.Equal("Foo", string(data))
- }
- }
- }
- func (t *testSuite) After() {
- client.Delete("Test")
- }
|