Home | History | Annotate | Download | only in util
      1 #!/usr/bin/python -E
      2 import sys, re
      3 from selinux import *
      4 verbose = 0
      5 errors=0
      6 def untrans(trans, val):
      7     global errors, verbose
      8     (rc, raw) = selinux_trans_to_raw_context(trans)
      9     if raw != val:
     10         print "untrans: '%s' -> '%s' != '%s' FAILED" % (trans, raw, val)
     11         errors += 1
     12     else:
     13         if verbose:
     14             print "untrans: %s -> %s != %s SUCCESS" % (trans, raw, val)
     15         
     16 def trans(raw, val):
     17     global errors, verbose
     18     (rc, trans) = selinux_raw_to_trans_context(raw)
     19     if trans != val:
     20         print "trans: '%s' -> '%s' != '%s' FAILED" % (raw,trans,  val)
     21         errors += 1
     22     else:
     23         if verbose:
     24             print "trans: %s -> %s != %s SUCCESS" % (raw, trans,  val)
     25 
     26 if len(sys.argv) > 1 and sys.argv[1] == "-v":
     27     verbose = 1
     28     
     29 for arg in sys.argv[1:]:
     30     f=open(arg, 'r')
     31     for line in f:
     32         if line.startswith('#'):
     33             continue
     34         if not line.strip():
     35             continue
     36         line = line.rstrip('\n')
     37 #       print line
     38         if (line.find("==") != -1):
     39             t,r=line.split("==");
     40             untrans("a:b:c:" + t, "a:b:c:" + r)
     41             trans("a:b:c:" + r, "a:b:c:" + t)
     42         else:
     43             t,r=line.split("=");
     44             untrans("a:b:c:" + t, "a:b:c:" + r)
     45     f.close()
     46 
     47 s = "s"
     48 if errors == 1: s = ""
     49 print "mlstrans-test done with %d error%s" % (errors, s)
     50 
     51 sys.exit(errors)
     52 
     53 
     54