1// +build integration,ec2env 2 3package imds 4 5import ( 6 "context" 7 "io/ioutil" 8 "os" 9 "strings" 10 "testing" 11) 12 13func TestInteg_GetDynamicData(t *testing.T) { 14 client := New(Options{}) 15 16 result, err := client.GetDynamicData(context.Background(), nil) 17 if err != nil { 18 t.Fatalf("expect no error, got %v", err) 19 } 20 21 b, err := ioutil.ReadAll(result.Content) 22 if err != nil { 23 t.Fatalf("expect to read content, got %v", err) 24 } 25 26 if len(b) == 0 { 27 t.Errorf("expect result content, but was empty") 28 } 29 t.Logf("Result:\n%s", string(b)) 30} 31 32func TestInteg_GetIAMInfo(t *testing.T) { 33 client := New(Options{}) 34 35 result, err := client.GetIAMInfo(context.Background(), nil) 36 if err != nil { 37 t.Fatalf("expect no error, got %v", err) 38 } 39 40 t.Logf("IAMInfo:\n%#v", result.IAMInfo) 41} 42 43func TestInteg_GetInstanceIdentityDocument(t *testing.T) { 44 client := New(Options{}) 45 46 result, err := client.GetInstanceIdentityDocument(context.Background(), nil) 47 if err != nil { 48 t.Fatalf("expect no error, got %v", err) 49 } 50 51 t.Logf("InstanceIdentityDocument:\n%#v", result.InstanceIdentityDocument) 52} 53 54func TestInteg_GetMetadata(t *testing.T) { 55 client := New(Options{}) 56 57 result, err := client.GetMetadata(context.Background(), nil) 58 if err != nil { 59 t.Fatalf("expect no error, got %v", err) 60 } 61 62 b, err := ioutil.ReadAll(result.Content) 63 if err != nil { 64 t.Fatalf("expect to read content, got %v", err) 65 } 66 67 if len(b) == 0 { 68 t.Errorf("expect result content, but was empty") 69 } 70 t.Logf("Result:\n%s", string(b)) 71} 72 73func TestInteg_GetRegion(t *testing.T) { 74 client := New(Options{}) 75 76 result, err := client.GetRegion(context.Background(), nil) 77 if err != nil { 78 t.Fatalf("expect no error, got %v", err) 79 } 80 81 if len(result.Region) == 0 { 82 t.Errorf("expect region, got none") 83 } 84 85 t.Logf("Region: %s", result.Region) 86} 87 88func TestInteg_GetUserData(t *testing.T) { 89 if !strings.EqualFold(os.Getenv("AWS_TEST_EC2_IMDS_WITH_USER_DATA"), "true") { 90 t.Skip("to run test set AWS_TEST_EC2_IMDS_WITH_USER_DATA=true") 91 } 92 93 client := New(Options{}) 94 95 result, err := client.GetUserData(context.Background(), nil) 96 if err != nil { 97 t.Fatalf("expect no error, got %v", err) 98 } 99 100 b, err := ioutil.ReadAll(result.Content) 101 if err != nil { 102 t.Fatalf("expect to read content, got %v", err) 103 } 104 105 if len(b) == 0 { 106 t.Errorf("expect result content, but was empty") 107 } 108 t.Logf("Result:\n%s", string(b)) 109} 110