labath added a comment.

> If we haven't already, we should probably have some kind of exception

>  wrapper around our decorators that catches non-unittest-related (i.e.

>  unexpected) exceptions and somehow makes them more prevalent - maybe a hard

>  error on the test or an abort or something.


+1

In the new test runner, the `raise Exception` thing will not actually make the 
test as a whole fail, but at least it will generate a lot of noise in the 
output, which will hopefully make someone notice it, so I guess it's better 
than nothing...


================
Comment at: packages/Python/lldbsuite/test/lldbtest.py:1102
@@ -1164,2 +1101,3 @@
+                return func(*args, **kwargs)
         return wrapper
 
----------------
zturner wrote:
> labath wrote:
> > This return statement is the root cause of the problem. If `func` is a 
> > class, you will replace it by a strange function-like object.
> This return statement is newly added anyway (and looks to be a mistake).  
> Does this mean if I remove the return statement, the all of the skip 
> decorators will be able to be used at class level?
> 
I'm not exactly sure what you mean. You can't simply remove the return 
statement, as that would make the decorator not work. I would try to make this 
decorator call `unittest2.skipIf`, which knows how to do the right thing. So, 
something like
```
def skipTestIfFn(expected_fn, bugnumber=None):
  skip, reason = ...
  return unittest2.skipIf(skip, reason)
```
would work (I think), but you could run into some complications as now 
`expected_fn` gets evaluated at decorator application time rather than during 
test invocation.

You can try this out for your self. Remove the exception guard, apply the 
decorator on a class with the condition that is false, and make sure that the 
tests *do* run.

But maybe we should do that as a separate patch ?


http://reviews.llvm.org/D16741



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to