1// +build bench 2 3package ec2query_test 4 5import ( 6 "testing" 7 8 "github.com/aws/aws-sdk-go/aws" 9 "github.com/aws/aws-sdk-go/aws/request" 10 "github.com/aws/aws-sdk-go/awstesting" 11 "github.com/aws/aws-sdk-go/private/protocol/ec2query" 12 "github.com/aws/aws-sdk-go/service/ec2" 13) 14 15func BenchmarkEC2QueryBuild_Complex_ec2AuthorizeSecurityGroupEgress(b *testing.B) { 16 params := &ec2.AuthorizeSecurityGroupEgressInput{ 17 GroupId: aws.String("String"), // Required 18 CidrIp: aws.String("String"), 19 DryRun: aws.Bool(true), 20 FromPort: aws.Int64(1), 21 IpPermissions: []*ec2.IpPermission{ 22 { // Required 23 FromPort: aws.Int64(1), 24 IpProtocol: aws.String("String"), 25 IpRanges: []*ec2.IpRange{ 26 { // Required 27 CidrIp: aws.String("String"), 28 }, 29 // More values... 30 }, 31 PrefixListIds: []*ec2.PrefixListId{ 32 { // Required 33 PrefixListId: aws.String("String"), 34 }, 35 // More values... 36 }, 37 ToPort: aws.Int64(1), 38 UserIdGroupPairs: []*ec2.UserIdGroupPair{ 39 { // Required 40 GroupId: aws.String("String"), 41 GroupName: aws.String("String"), 42 UserId: aws.String("String"), 43 }, 44 // More values... 45 }, 46 }, 47 // More values... 48 }, 49 IpProtocol: aws.String("String"), 50 SourceSecurityGroupName: aws.String("String"), 51 SourceSecurityGroupOwnerId: aws.String("String"), 52 ToPort: aws.Int64(1), 53 } 54 55 benchEC2QueryBuild(b, "AuthorizeSecurityGroupEgress", params) 56} 57 58func BenchmarkEC2QueryBuild_Simple_ec2AttachNetworkInterface(b *testing.B) { 59 params := &ec2.AttachNetworkInterfaceInput{ 60 DeviceIndex: aws.Int64(1), // Required 61 InstanceId: aws.String("String"), // Required 62 NetworkInterfaceId: aws.String("String"), // Required 63 DryRun: aws.Bool(true), 64 } 65 66 benchEC2QueryBuild(b, "AttachNetworkInterface", params) 67} 68 69func benchEC2QueryBuild(b *testing.B, opName string, params interface{}) { 70 svc := awstesting.NewClient() 71 svc.ServiceName = "ec2" 72 svc.APIVersion = "2015-04-15" 73 74 for i := 0; i < b.N; i++ { 75 r := svc.NewRequest(&request.Operation{ 76 Name: opName, 77 HTTPMethod: "POST", 78 HTTPPath: "/", 79 }, params, nil) 80 ec2query.Build(r) 81 if r.Error != nil { 82 b.Fatal("Unexpected error", r.Error) 83 } 84 } 85} 86