// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of "Eclipse Public License v1.0"
// which accompanies this distribution, and is available
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
//
// Initial Contributors:
// Nokia Corporation - initial contribution.
//
// Contributors:
//
// Description:
//

//! @file
//! @SYMTestSuiteName PDS-TEF-CENTREP-PERFORMANCE
//! @SYMScriptTestEnvironment TEF
//! @internalComponent
//! @test

PRINT CentralRepository TEF Performance Tests

LOAD_SUITE CentRepPerfTest

//Delay to make sure that boot has completed.
DELAY 60000

START_TESTCASE  SYSLIBS-CENTRALREPOSITORY-PT-1424
//! @SYMTestCaseID SYSLIBS-CENTRALREPOSITORY-PT-1424
//! @SYMTestCaseDesc Measure CPU time usage by CentralRepositorySrv during boot
//! @SYMTestPriority Critical
//! @SYMTestActions  Retrieve performance data collected by CentRep server, analyze, and
//!    print out a summary of the performance data.
//! @SYMTestExpectedResults This test always passes. Engineers working on CentRep 
//!    improvement will run this suite before and after submission to gage actual
//!    savings in CPU time.
//! @SYMPREQ PREQ1192
//! @SYMTestStatus Defined
RUN_TEST_STEP 300 CentRepPerfTest GetPerfTestResults z:\TEF_CentralRepository\perf.ini boottest

END_TESTCASE   SYSLIBS-CENTRALREPOSITORY-PT-1424

START_TESTCASE  SYSLIBS-CENTRALREPOSITORY-PT-1425
//! @SYMTestCaseID SYSLIBS-CENTRALREPOSITORY-PT-1425
//! @SYMTestCaseDesc Measure Heap usage by CentralRepositorySrv repositories during boot
//! @SYMTestPriority Critical
//! @SYMTestActions  Retrieve performance data collected by CentRep server, analyze, and
//!    print out a summary.
//! @SYMTestExpectedResults This test always passes. Engineers working on CentRep 
//!    improvement will run this suite before and after submission to gauge actual
//!    savings in RAM usage of repositories.
//! @SYMPREQ PREQ1192
//! @SYMTestStatus Defined
RUN_TEST_STEP 300 CentRepPerfTest CentRepMemTestLogger

END_TESTCASE   SYSLIBS-CENTRALREPOSITORY-PT-1425

START_TESTCASE  SYSLIBS-CENTRALREPOSITORY-PT-1459
//! @SYMTestCaseID SYSLIBS-CENTRALREPOSITORY-PT-1459
//! @SYMTestCaseDesc Measure CPU time used by CentRep client and server for Find~L API.
//! @SYMTestPriority Critical
//! @SYMTestActions  Call Find~L API and measure the time it takes for completion then 
//!                 report the summary.
//! @SYMTestExpectedResults This test always passes. Engineers working on CentRep 
//!    improvement will run this suite before and after submission to gauge actual
//!    savings in CPU time.
//! @SYMPREQ PREQ1192
//! @SYMTestStatus Defined
RUN_TEST_STEP 300 CentRepPerfTest CentRepFindPerfTest
END_TESTCASE   SYSLIBS-CENTRALREPOSITORY-PT-1459

START_TESTCASE  SYSLIBS-CENTRALREPOSITORY-PT-1423 //CachePerformance
SHARED_DATA z:\TEF_CentralRepository\perf.ini Shared
//! @SYMTestCaseID SYSLIBS-CENTRALREPOSITORY-PT-1423
//! @SYMTestCaseDesc Measure cached repository access time in CentralRepository 
//! @SYMTestPriority High
//! @SYMTestActions  Bring up server, connect, access repositories, retrieve performance 
//!    data, analyze, and print out a summary of the performance data.
//! @SYMTestExpectedResults This test always passes. Engineers working on CentRep 
//!    improvement will run this suite before and after submission to gage actual
//!    savings in CPU time.
//! @SYMPREQ PREQ1192
//! @SYMTestStatus Defined

	RUN_TEST_STEP 1200 CentRepPerfTest PerfTestCacheEnabledStep
	PRINT --- Performance data for repository access with Caching ENABLED  ---
	RUN_TEST_STEP 300 CentRepPerfTest GetPerfTestResults z:\TEF_CentralRepository\perf.ini timingtest1
	RUN_TEST_STEP 1200 CentRepPerfTest PerfTestCacheDisabledStep
	PRINT --- Performance data for repository access with Caching DISABLED ---
	RUN_TEST_STEP 300 CentRepPerfTest GetPerfTestResults z:\TEF_CentralRepository\perf.ini timingtest2
	RUN_TEST_STEP 300 CentRepPerfTest PerfTestCompareStep z:\TEF_CentralRepository\perf.ini Shared
END_TESTCASE  SYSLIBS-CENTRALREPOSITORY-PT-1423 //CachePerformance

START_TESTCASE  SYSLIBS-CENTRALREPOSITORY-PT-1482
//! @SYMTestCaseID SYSLIBS-CENTRALREPOSITORY-PT-1482
//! @SYMTestCaseDesc Central repository persists operation performance could be improved
//! @SYMTestPriority High
//! @SYMTestActions  Calculate Average time to open large repository from ROM file, average time to open 
//!    large repository from persists file and average time to write large repository to persists file. 
//! @SYMTestExpectedResults This test always passes. 
//! @SYMDEF DEF057491
//! @SYMTestStatus Defined
RUN_TEST_STEP 300 CentRepPerfTest CentRepDefectTest057491
END_TESTCASE  SYSLIBS-CENTRALREPOSITORY-PT-1482


START_TESTCASE  SYSLIBS-CENTRALREPOSITORY-PT-1483
//! @SYMTestCaseID SYSLIBS-CENTRALREPOSITORY-PT-1483
//! @SYMTestCaseDesc Central Repository adds 11s to 9.1 NAND boot time
//! @SYMTestPriority High
//! @SYMTestActions  Calculate time to open text based rep from ROM, time to open binary rep from ROM,
//!    average time to open text based rep from ROM, average time to open binary rep from ROM, 
//!    compare results and prove that opening .ini is slower than opening .cre files 
//! @SYMTestExpectedResults This test always passes. 
//! @SYMDEF DEF059633
//! @SYMTestStatus Defined
RUN_TEST_STEP 300 CentRepPerfTest CentRepDefectTest059633

END_TESTCASE  SYSLIBS-CENTRALREPOSITORY-PT-1483


START_TESTCASE  SYSLIBS-CENTRALREPOSITORY-PT-1657
//! @SYMTestCaseID SYSLIBS-CENTRALREPOSITORY-PT-1657
//! @SYMTestCaseDesc Measure the time to open/close multiple repositories from a single thread
//! @SYMTestPriority High
//! @SYMTestActions  Measure CPU time, open n repositories, measure CPU time, report the time it 
//!                 takes to open all repositories. Measure CPU time, close n repositories, measure
//!                 CPU time, report the time it takes to close all repositories. Repeat all of 
//!                 the steps for n=1..5
//! @SYMTestExpectedResults This test always passes. Engineers working on CentRep improvements 
//!                 will run this suite before and after submission to gauge actual savings 
//!                 in CPU time.
//! @SYMPREQ PREQ1228
//! @SYMTestStatus Defined
RUN_TEST_STEP 300 CentRepPerfTest PerfTestClientOpenStep
END_TESTCASE  SYSLIBS-CENTRALREPOSITORY-PT-1657

START_TESTCASE    SYSLIBS-CENTRALREPOSITORY-PT-1658  //Notify-OnlyRAM
//! @SYMTestCaseID SYSLIBS-CENTRALREPOSITORY-PT-1658
//! @SYMTestCaseDesc Notify-only client optimization RAM usage test
//! @SYMTestPriority High
//! @SYMTestActions  Retrieve memory usage data collected by CentRep server, analyze, and
//!    print out a summary during certain stages of the lifetime of session objects.
//! @SYMTestExpectedResults This test always pass. Engineers working on CentRep 
//!    improvement will run this suite before and after submission to gauge actual
//!    savings in RAM usage of repositories.
//! @SYMPREQ PREQ1228
//! @SYMTestStatus Defined

	RUN_TEST_STEP 300 CentRepPerfTest NotifyMemTestStep
END_TESTCASE    SYSLIBS-CENTRALREPOSITORY-PT-1658  //Notify-OnlyRAM
