NI TestStand

Showing results for 
Search instead for 
Did you mean: 

TestStand Post Action Sequence Call Failures do not propagate as expected behavior?

Go to solution

Normally when I use "Call Sequence" as part of a post action, it is for utility work and I am not looking to do any test evaluation... However recently I experimented with calling a Sequence-as-post-action that had steps within capable of pass/failing... and I was startled to see that the failures within the Post Action sequence didn't appear to propagate in the I was tentatively expecting 

(1) they didn't influence status of 'calling step' - which makes sense to me, because in this case the calling step is a different test step with its own internal pass/fail logic...

(2) they didn't influence status of 'calling sequence' - which felt odd to me.  I.e. I could see the Post Action sequence step results logged to my report with  "Failed" statuses, but my overall MainSequence status remained 'Passed'

I suspect this is normal behavior and somehow linked with the whole 'post action sequences do not support parameter passing'  except that they are logging their status to report...? and Error status is being handled correctly? so it's not like the result data is being defaulted/ignored.

I'm just curious if anyone knows of a formal explanation anywhere for what to expect with Post Action sequence calls and why failure status appears to be propagated differently from error / terminate...

1. add 1 subsequence to file for 'always fail' and add1 step with forced failure status.
2. add 1 Numeric Limit test to MainSequence for 0<x<10 and feed it a static constant 5 to always pass.
3. modify numeric limit properties to invoke subsequence 'always fail' as post action (on pass)

Also wondering how I never noticed this before... 😅

-Elaine R

0 Kudos
Message 1 of 3
Accepted by topic author Elaine_R.

Hey Elaine -

I think the Post Action Sequence Call might have been a compatibility feature from either the LabVIEW and/or LabWindows/CVI Testexec so it goes back to TestStand 1.0.


It is a fairly obscure/advanced feature which allows you to invoke a sequence in the same file with no parameters. I have always consider it as a way to operate on the step it was called from, i.e. for a retry, or change step status, change calling sequence status, etc, but the called sequence has to opt-in to what it affects. The error case is different in that something did not go as designed so that automatically propagates.


If you have a failure that you want to propagate to the calling step and its sequence, the called sequence can just set RunState.CallingStep.Result.Status = "Failed" and RunState.Caller.RunState.SequenceFailed = True.



Scott Richardson
0 Kudos
Message 2 of 3

I was suspecting it was something legacy like this. 🙂


Thanks for the historical datapoint that does put things in context to explain default behavior!



Elaine R

0 Kudos
Message 3 of 3