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 }