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

Re: [MirageOS-devel] Regarding Bisect Coverage Bugs on ubuntu12.04 platform

(again, cc'ing back to the list as others may find the response of use)

On 13 Mar 2014, at 21:52, Narayana Reddy Y <narayana1208@xxxxxxxxxxx> wrote:

> Thank you and i will try Utop method once.
> I would be grateful to you if explain me clearly what is this tweaking _oasis 
> file and ocamlbuild .how you used this that i am not able to get please 
> explain a bit more clear.

the _oasis tweak was simply to add "bisect" to the package dependencies:

diff --git a/_oasis b/_oasis
index 77f48af..d54bf3f 100644
--- a/_oasis
+++ b/_oasis
@@ -10,7 +10,7 @@ BuildTools:  ocamlbuild
 Library uri
   Path:       lib
   Modules:    Uri,Uri_re,Uri_IP
-  BuildDepends: re.posix,re.str
+  BuildDepends: re.posix,re.str, bisect

 Flag tests
   Description:        Build and run tests

...then regenerate oasis derivatives:

$ opam install oasis
$ oasis setup

...then add a dependency on camlp4 for the bisect syntax extensions in the 
_tags file:

diff --git a/_tags b/_tags
index bf86e80..21972e5 100644
--- a/_tags
+++ b/_tags
[oasis derived changes elided]
 true: annot
+<lib/*>: syntax_camlp4o
+<lib_test/*>: syntax_camlp4o

...then fix a couple of syntax errors that seemed to arise in lib/uri.ml where 
local module scooping seemed to break (not sure why, perhaps the syntax 
additions for bisect affect this? or perhaps it's a syntax difference between 
the byte and native compilers, but that seems like it would be a pretty serious 
bug that would've been caught... :)

diff --git a/lib/uri.ml b/lib/uri.ml
index 723a4f4..d30662f 100644
--- a/lib/uri.ml
+++ b/lib/uri.ml
@@ -295,11 +295,11 @@ let to_string uri =
   (match uri.query with
    |[] -> ()
-   |q -> Buffer.(add_char buf '?'; add_string buf (Query.encoded_of_query q))
+   |q -> Buffer.add_char buf '?'; Buffer.add_string buf 
(Query.encoded_of_query q)
   (match uri.fragment with
    |None -> ()
-   |Some f -> Buffer.(add_char buf '#'; add_pct_string f)
+   |Some f -> Buffer.add_char buf '#'; add_pct_string f
   Buffer.contents buf

...and then build the byte compiled version:

$ ocamlbuild -classic-display lib_test/test_runner.byte

running the test_runner.byte output should then generate the bisect logs which 
you can parse to html and view as per the instructions.

(there may be smarter/better ways of doing this -- i've not used bisect before.)



This message and any attachment are intended solely for the addressee and may 
contain confidential information. If you have received this message in error, 
please send it back to me, and immediately delete it.   Please do not use, copy 
or disclose the information contained in this message or in any attachment.  
Any views or opinions expressed by the author of this email do not necessarily 
reflect the views of the University of Nottingham.

This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system, you 
are advised to perform your own checks. Email communications with the 
University of Nottingham may be monitored as permitted by UK legislation.

MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.