tberghammer added a comment.

My main concern is that we have a lot of named argument for 
skipIf/expectFailure and I expect it to increase even further as we support 
more and more configuration. In my opinion we can have some functional style 
solution as readable as the current solution with greater flexibility.

What do you think about having the skipIf decorator taking a list of functions 
as argument with *argc and it's meaning is that the test is skipped if all 
function returns true (skipIfAll)? To make it readable we can then write simple 
helper functions such as: archMatches, compilerMatches, hostMatches, etc....

In this case we can have decorators like this: @skipIf(archMatches("arm"), 
compilerMatches("clang", "3.7"))

If we need some more complicated condition then we can either introduce logical 
operators what can be used to negate functions, or/xor functions or do even 
more complicated things based on the existing basic functions or we can 
introduce new free standing functions what can be passed in to the decorator 
(they can be specified either locally or globally)

A few complicated function I think we will need: androidDeviceMatches, 
linuxDistributionMatches, deviceSupportsHardwareBreakpoints, etc...

I think this solution keeps the common decorators very readable while making 
the system easily extensible for extreme situations.


Repository:
  rL LLVM

http://reviews.llvm.org/D16936



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

Reply via email to