github.com/hashicorp/packer@v1.14.3/internal/dag/dag_test.go (about)

     1  // Copyright (c) HashiCorp, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package dag
     5  
     6  import (
     7  	"flag"
     8  	"os"
     9  	"testing"
    10  )
    11  
    12  func TestMain(m *testing.M) {
    13  	flag.Parse()
    14  	os.Exit(m.Run())
    15  }
    16  
    17  func TestAcyclicGraphValidate(t *testing.T) {
    18  	var g AcyclicGraph
    19  	g.Add(1)
    20  	g.Add(2)
    21  	g.Add(3)
    22  	g.Connect(BasicEdge(3, 2))
    23  	g.Connect(BasicEdge(3, 1))
    24  
    25  	if err := g.Validate(); err != nil {
    26  		t.Fatalf("err: %s", err)
    27  	}
    28  }
    29  
    30  func TestAcyclicGraphValidate_cycle(t *testing.T) {
    31  	var g AcyclicGraph
    32  	g.Add(1)
    33  	g.Add(2)
    34  	g.Add(3)
    35  	g.Connect(BasicEdge(3, 2))
    36  	g.Connect(BasicEdge(3, 1))
    37  	g.Connect(BasicEdge(1, 2))
    38  	g.Connect(BasicEdge(2, 1))
    39  
    40  	if err := g.Validate(); err == nil {
    41  		t.Fatal("should error")
    42  	}
    43  }
    44  
    45  func TestAcyclicGraphValidate_cycleSelf(t *testing.T) {
    46  	var g AcyclicGraph
    47  	g.Add(1)
    48  	g.Add(2)
    49  	g.Connect(BasicEdge(1, 1))
    50  
    51  	if err := g.Validate(); err == nil {
    52  		t.Fatal("should error")
    53  	}
    54  }