Toad World® Forums

Out of Memory Error - Multiple test cases for same package?


#1

I have vrs 1.8 of Quest Code Tester.

I have a test definition for a package “PKG_ABC”. However, it is getting pretty big and when I added my last test case to it and tried to run or click the Test Editor button, I get a Out of Memory error. So I thought I would split the test into 2 different test definitions. But when I select the same package (“PKG_ABC”) when I create a new definition, it says I have to append or replace the existing definition.
(The current test definition that is getting the memory error is for 2 procedures that each have approx 30 test cases. And I still need to add a bunch more).

So, can I create different tests for the same package?
If not, how do I get around this memory error? I have gotten this error on 2 different machines. Is it a bug in this version?

Here is a sample from the bug report:
processors : 2x Intel® Core™2 CPU T7600 @ 2.33GHz
physical memory : 1114/2038 MB (free/total)
free disk space : (C:) 27.58 GB
process id : $205c
allocated memory : 29.08 MB
executable : QuestCodeTesterOracle.exe
exec. date/time : 2009-05-29 11:26
version : 1.8.3.414
madExcept version : 3.0b
callstack crc : $957a78b1, $9d21d7ff, $9d21d7ff
exception number : 1
exception class : EOutOfMemory
exception message : Out of memory.


#2

We have had a couple of reports of Out of Memory areas and so far as
we can tell it is related to a large volume of results being loaded
into the Test Editor and/or Results Viewer.

You can determine the number of result rows for this test definition
with the following query:

SELECT COUNT (*)
FROM qu_result t
START WITH t.result_universal_id = ‘GUID’
CONNECT BY PRIOR t.universal_id = t.parent_universal_id;

and replace GUID with the value for GUID that is shown in the Audit
section of the Properties tab of your test definition.

Could you please tell me what that number is?

And then unfortunately the workaround for this problem is to remove
some/all of the results.

We are looking into revamping how results data is managed, but that
will not be in place for 1.9 (which is scheduled to be released this month).

SF


#3

I cannot open the Test Editor - it gives me the out of memory error. Is there another way to find the GUID for your query?

Message was edited by: smay


#4

Ah…right…yes, you can check the contents of the qu_harness table in the schema that owns the code tester repository.

Find the matching program name for the harness (aka, test definition).
The UNIVERSAL_ID column contains the GUID value.

SF


#5

Count = 116733


#6

Yes. That’s a lot. So the good news: There should be no problem with you creating many more tests. That’s not the problem.

The problem is with the volume of results. So for now, I hate to say it but you will need to clean up some of your results to avoid the out of memory error.

You can clean up results through the Dashboard, just click on the test definition, then click on the Test menu and select Cleanup.

SF


#7

One other thing to try before cleaning up:

Open Results Viewer and make sure that the Show Latest Results Only is pressed on.

I believe that this should also help you avoid the Out of Memory error in Test Editor.


#8

I cleaned up the results and the count was 0. I was able to get into the Test Editor. However, when I ran the test, it got the memory error again (count is back to 116733). I guess it just doesn’t support this large of test. Any way around the naming issue? So that I could have PKG_ABC Test1, PKG_ABC Test2, etc.


#9

Sigh. OK, I get it now. Took a while. :slight_smile: We will definitely take a look at how to revamp things for the next version.

So…how can you break up a test definition for the same program unit?

You have two choices:

  1. Suppose you have package PKG defined in schema A. You grant execute on PKG to schema B. You can then create test definitions for different programs in PKG in both A and B.

  2. Create a test definition for PKG.PROC1 and then export to file. Create a new test definition for PKG.PROC2, export to different file. Then whenever you want to work on and run a specific test, you import that test definition and run it.

Regards, SF


#10

Could you also show me the results of this query:

select result_level, count(*)
FROM qu_result t
START WITH t.result_universal_id = ‘GUID’
CONNECT BY PRIOR t.universal_id = t.parent_universal_id;


#11

RESULT_LEVEL COUNT(*)

HARNESS 1

INPUT 105564

OUTARG 5556

OUTCOME 3704

TESTCASE 1906

UNITTEST 2


#12

Thanks, this is very interesting. At first glance, I do not see why
there would be so many INPUT rows. That may be a bug I can fix with a
backend patch.

Excellent! Back to you soon…SF


#13

That input count of over 100,000 really bothers me. I do not see it in my own tests. Could you please create a support bundle that includes the program you are testing, and then send it to me:

steven.feuerstein@quest.com

That will help me figure out what is going on.

Thanks, SF