mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 10:13:14 -04:00 
			
		
		
		
	* kubernetes/reverse: remove deadcode * deadcode in errors and kubernetes removed * unnecessary conversion * constants * proxy: time.Since() * simplications * static check * Disable test/external_test
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package test
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"os"
 | |
| 	"os/exec"
 | |
| 	"strings"
 | |
| 	"testing"
 | |
| )
 | |
| 
 | |
| // Go get external example middleware, compile it into CoreDNS
 | |
| // and check if it is really there, but running coredns -plugins.
 | |
| 
 | |
| // Dangerous test as it messes with your git tree, maybe use tag?
 | |
| func testExternalMiddlewareCompile(t *testing.T) {
 | |
| 	if err := addExampleMiddleware(); err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	defer run(t, gitReset)
 | |
| 
 | |
| 	if _, err := run(t, goGet); err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	if _, err := run(t, goGen); err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	if _, err := run(t, goBuild); err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	out, err := run(t, coredns)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	if !strings.Contains(string(out), "dns.example") {
 | |
| 		t.Fatal("dns.example middleware should be there")
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func run(t *testing.T, c *exec.Cmd) ([]byte, error) {
 | |
| 	c.Dir = ".."
 | |
| 	out, err := c.Output()
 | |
| 	if err != nil {
 | |
| 		return nil, fmt.Errorf("run: failed to run %s %s: %q", c.Args[0], c.Args[1], err)
 | |
| 	}
 | |
| 	return out, nil
 | |
| 
 | |
| }
 | |
| 
 | |
| func addExampleMiddleware() error {
 | |
| 	f, err := os.OpenFile("../middleware.cfg", os.O_APPEND|os.O_WRONLY, os.ModeAppend)
 | |
| 	if err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 	defer f.Close()
 | |
| 
 | |
| 	_, err = f.WriteString(example)
 | |
| 	return err
 | |
| }
 | |
| 
 | |
| var (
 | |
| 	goBuild  = exec.Command("go", "build")
 | |
| 	goGen    = exec.Command("go", "generate")
 | |
| 	goGet    = exec.Command("go", "get", "github.com/coredns/example")
 | |
| 	gitReset = exec.Command("git", "checkout", "core/*")
 | |
| 	coredns  = exec.Command("./coredns", "-plugins")
 | |
| )
 | |
| 
 | |
| const example = "1001:example:github.com/coredns/example"
 |