Re: [PATCH] nfs4lib: add test name as a compound tag

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 02, 2015 at 08:38:18AM +0200, Tigran Mkrtchyan wrote:
> allowes to easy trace tests, e.q: [st_verify.py:_try_mand]

Thanks, applied.

> a similar fix as 2b41c3e, but for 4.0. Introdces a bit
> of code duplication, but this is forced by test suite structure.

I looked into that for a while earlier this year.  I started out looking
for duplicated code (e.g. there's two complete copies of the "ply"
library) and making it shared.  I removed a lot of lines of code that
way but didn't really feel like I'd really simplified anything.

So I eventually decided it would be better to add support for 4.0 to the
code under nfs4.1/ and then remove nfs4.0/ once all the tests have been
ported over.

But I only got as far as basic state setup (SETCLIENTID,
SETCLIENTID_CONFIRM, OPEN, OPEN_CONFIRM), without any backchannel
support and without the 4.0 tests ported over yet.  Not sure if/when I
might get back to that.

--b.

> 
> Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@xxxxxxx>
> ---
>  nfs4.0/nfs4lib.py    | 18 +++++++++++++++++-
>  nfs4.1/nfs4client.py |  3 ++-
>  2 files changed, 19 insertions(+), 2 deletions(-)
> 
> diff --git a/nfs4.0/nfs4lib.py b/nfs4.0/nfs4lib.py
> index f196bef..5031feb 100644
> --- a/nfs4.0/nfs4lib.py
> +++ b/nfs4.0/nfs4lib.py
> @@ -40,6 +40,8 @@ import struct
>  import socket
>  import sys
>  import re
> +import inspect
> +from os.path import basename
>  
>  class NFSException(rpc.RPCError):
>      pass
> @@ -313,8 +315,13 @@ class NFS4Client(rpc.RPCClient, nfs4_ops.NFS4Operations):
>          """Make COMPOUND procedure call"""
>          if type(argarray) is not list:
>              raise "Need list for argarray"
> +
> +        if len(tag) == 0:
> +            compound_tag = self.create_tag()
> +        else:
> +            compound_tag = tag
>          # Make the actual call
> -        compoundargs = COMPOUND4args(argarray=argarray, tag=tag,
> +        compoundargs = COMPOUND4args(argarray=argarray, tag=compound_tag,
>                                       minorversion=minorversion)
>          if SHOW_TRAFFIC:
>              print
> @@ -367,6 +374,15 @@ class NFS4Client(rpc.RPCClient, nfs4_ops.NFS4Operations):
>  
>          return res
>  
> +    def create_tag(self):
> +        current_module = inspect.getmodule(inspect.currentframe().f_back)
> +        current_stack = inspect.stack()
> +        stackid = 0
> +        while current_module == inspect.getmodule(current_stack[stackid][0]):
> +              stackid = stackid + 1
> +        test_name = '%s:%s' % (basename(current_stack[stackid][1]), current_stack[stackid][3])
> +        return test_name
> +
>      def init_connection(self, id=None, verifier=None, cb_ident=None):
>          """Do setclientid/setclientidconfirm combination"""
>          # SETCLIENTID
> diff --git a/nfs4.1/nfs4client.py b/nfs4.1/nfs4client.py
> index 62ccc3a..14b34d2 100644
> --- a/nfs4.1/nfs4client.py
> +++ b/nfs4.1/nfs4client.py
> @@ -307,9 +307,10 @@ class NFS4Client(rpc.Client, rpc.Server):
>          return s
>  
>      def create_tag(self):
> +        current_module = inspect.getmodule(inspect.currentframe().f_back)
>          current_stack = inspect.stack()
>          stackid = 0
> -        while basename(current_stack[stackid][1]) == 'environment.py' or basename(current_stack[stackid][1]) == 'nfs4client.py':
> +        while current_module == inspect.getmodule(current_stack[stackid][0]):
>                stackid = stackid + 1
>          test_name = '%s:%s' % (basename(current_stack[stackid][1]), current_stack[stackid][3])
>          return test_name
> -- 
> 2.4.2
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux