@@ -850,3 +850,54 @@ func (s *BasicFunctionalitySuite) Scenario_JobResume(svm *ScenarioVariationManag
850850 svm .Assert ("resume completed transfers not equal to 1" , Equal {}, resumeParsed .FinalStatus .TransfersCompleted , uint32 (1 ))
851851 }
852852}
853+
854+ func (s * BasicFunctionalitySuite ) Scenario_ValidateThroughput (svm * ScenarioVariationManager ) {
855+ azCopyVerb := ResolveVariation (svm , []AzCopyVerb {AzCopyVerbCopy , AzCopyVerbSync }) // Calculate verb early to create the destination object early
856+ // Resolve variation early so name makes sense
857+ srcLoc := ResolveVariation (svm , []common.Location {common .ELocation .Local (), common .ELocation .Blob ()})
858+ // Scale up from service to object
859+ dstContainer := CreateResource [ContainerResourceManager ](svm , GetRootResource (svm , ResolveVariation (svm , []common.Location {common .ELocation .Local (), common .ELocation .Blob ()})), ResourceDefinitionContainer {})
860+
861+ // Scale up from service to object
862+ srcDef := ResourceDefinitionContainer {
863+ Objects : ObjectResourceMappingFlat {
864+ "abc" : ResourceDefinitionObject {Body : NewRandomObjectContentContainer (SizeFromString ("10K" ))},
865+ "def" : ResourceDefinitionObject {Body : NewRandomObjectContentContainer (SizeFromString ("10K" ))},
866+ "foobar" : ResourceDefinitionObject {Body : NewRandomObjectContentContainer (SizeFromString ("10K" ))},
867+ },
868+ }
869+ srcContainer := CreateResource [ContainerResourceManager ](svm , GetRootResource (svm , srcLoc ), srcDef )
870+
871+ // no s2s, no local->local
872+ if srcContainer .Location ().IsRemote () == dstContainer .Location ().IsRemote () {
873+ svm .InvalidateScenario ()
874+ return
875+ }
876+
877+ sasOpts := GenericAccountSignatureValues {}
878+
879+ stdOut , _ := RunAzCopy (
880+ svm ,
881+ AzCopyCommand {
882+ Verb : azCopyVerb ,
883+ Targets : []ResourceManager {
884+ TryApplySpecificAuthType (srcContainer , EExplicitCredentialType .SASToken (), svm , CreateAzCopyTargetOptions {
885+ SASTokenOptions : sasOpts ,
886+ }),
887+ TryApplySpecificAuthType (dstContainer , EExplicitCredentialType .SASToken (), svm , CreateAzCopyTargetOptions {
888+ SASTokenOptions : sasOpts ,
889+ }),
890+ },
891+ Flags : CopyFlags {
892+ CopySyncCommonFlags : CopySyncCommonFlags {
893+ Recursive : pointerTo (true ),
894+ GlobalFlags : GlobalFlags {
895+ OutputType : pointerTo (cmd .EOutputFormat .Text ()),
896+ },
897+ },
898+ },
899+ })
900+
901+ // Validate that throughput is displayed in the output (regression test for v10.31.0 throughput display bug)
902+ ValidateThroughputOutput (svm , stdOut )
903+ }
0 commit comments