10-06-2009 05:50 AM
I've just upgraded from Teststand 4.1.1 to 4.2 and have come across this
problem when reviewing existing sequence files.
When I open a sequence file and select any Sequence Call type step, which calls another sub-sequence
in a different sequence file, I'm informed that the parameters used do not match those required.
To be specific, in the Step Settings area, a red exclamation symbol appears alongside the
name of sub-sequence called by the step, and the tool tip displayed when the mouse pointer is
hovered over the exclamation mark states:
"The parameters specified by the step do not match the sequence parameters."
The tool tip goes on to explain how to fix this problem by clicking the exclamation symbol.
I also find that by deselecting the "Use Prototype of Sequence" in the Step Settings\Module tab
solves the problem.
When the sequence is run, no problems occur with the execution, the test performs correctly.
Is there a way to clear this error for every Sequence Call step in a single operation ?
thanks,
Gary.
Solved! Go to Solution.
10-06-2009 10:04 AM - last edited on 10-13-2009 02:05 PM by Support
This is likely due to a difference between the "Pass by Reference" setting on the sequence call step and the actual called sequence. The information on the Additional Results panel is incorrect if these settings do not match so the Sequence Editor warns you of the situation. TestStand 4.2 introduced this behavior.
I've attached a sequence file that updates all steps in a sequence file. You can modify it to work with multiple sequence files. It updates all steps that have incompatible prototypes, not just sequence calls. Run the "Install Tool Menu Item" sequence to create an item in the Tools menu that will update all steps in the active sequence file.
EDIT: see this reply for new file
10-12-2009 08:01 AM
Erik,
Before I start to apply the tool you have kindly provided, I have another question.
Why should the "How Passed" attribute of the argument in the calling step
be different from the "Pass by reference" parameter attribute, set in the called
sequence ?
Put another way, for example, I can see that an argument in a Sequence Call step
is set to pass by reference, and in the called sequence definiton, the parameter is defined
to be called by value, i.e. the "Pass by reference" attribute is unchecked.
I do not understand how the caller can have the wrong "How passed" setting.
The sequences have not been edited, only the Teststand version has changed.
Thanks,
Gary.
10-12-2009 09:58 AM
Erik,
I've now had chance to use the tool that you provided to remove the Pass by Reference/Value inconsistency
occurring in sequence call steps.
Unfortunately while resolving one problem it seems to create another.
After processing the sequence file, a check of a sequence call step properties shows the previously defined
arguments to be missing, and replaced with the text:
<The expression cannot be empty> .
Any further suggestions appreciated.
Gary.
10-12-2009 10:25 AM
Erik,
Some information which may help you re-create the problem:
Our sequence files were originally created using Teststand 3.5, then later modified using
Teststand 4.1.1 .
Sequence call steps created using TS 3.5 display the problem, but sequence call steps
created using TS 4.1.1 do not.
This refers to both versions of sequence call steps occurring in the same sub-sequence.
Gary.
10-13-2009 09:15 AM
My apologies for attaching a buggy sequence file. I forgot to pass a parameter to the LoadPrototype method to keep the existing parameters. I've attached a corrected version of the sequence file. I modified it to update only SequenceCall steps because of potential problems reloading DLL prototypes.
Let me try to explain why you are seeing this in TestStand 4.2. The Additional Results feature we added to TestStand 4.1 needs to know which parameters are inputs, outputs and input/outputs (i.e. which parameters are Pass by Reference). Previous to TestStand 4.1, the sequence call step did not store this information but rather obtained it dynamically and displayed it in the How Passed column. Now that we store the Pass by Reference option with the step, you can have an inconsistency between the option stored in the step and the actual parameter of the called sequence. This inconsistency affects only Additional Results and not execution. In TestStand 4.1, the sequence editor does not warn you about these inconsistencies. We added the warning in TestStand 4.2 so that you will have the correct Additional Results information.
When TestStand 4.1 or 4.2 loads a sequence file from a pre-4.1 version, TestStand sets the Pass by Reference option to true for all parameters in sequence call steps. That's why you will see the warning message for any sequence call step created in TestStand 3.5 if any parameter is not Pass by Reference. You will also see the problem if you change the Pass by Reference option of a parameter in the called sequence.