Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 956 Categories, Downloaded 50.165.788 Times

ccovinstrument 0.20

  Date Added: February 16, 2010  |  Visits: 1.037

ccovinstrument

Report Broken Link
Printer Friendly Version


Product Homepage
Download (89 downloads)



ccovinstrument package contains instruments C/C++ code for test coverage analysis. SYNOPSIS ccovinstrument code.c > covcode.c ccovinstrument code.c [-f] -o covcode.c [-e errs] -f instrument fatal code as well as normal code Scans C/C++ source (before cpp) and inserts trip-wires in each code path to record execution. A number of error prone coding styles are also detected. Many of these ideas came from study of the highly regarded perl5 source code (and from my own coding experience. This approach (or almost any approach) to coverage analysis is NOT fullproof! Just because you exercise every code path does NOT mean you have exercised all possibilities. For example, consider the following code: char fetch_char(int xx) { static char *string = "Dr. Zorph Trokien"; if (xx < 0) { return 0; } else { return string[xx]; } } Unfortunately, you still have to be somewhat intelligent about designing your test scripts. However, assuming youre clever, you can use this tool to know when to stop writing more tests. Thus, thereby achieving test coverage. CCov SOURCE DIRECTIVES /* CCov: off */ Turns off coverage instrumentation. You probably dont want to analyze debugging code. /* CCov: on */ Turns on coverage instrumentation. /* CCov: jump if for do while else return */ Adds to the list of identifiers that cause a change in execution flow. In addition to the usual keywords, macros used by the perl core and XSUBs are included by default. /* CCov: fatal myexit croak panic */ Adds to the list of identifiers that cause a fatal exception. Instrumentation of these blocks is turned off by default. (You usually want to make sure the code is suppose to work works before you make sure that the code that isnt support to work works.) HOW DOES IT WORK? The instrumenter processes source code before it is seen by cpp. This helps you isolate your testing. Usually, you want to do test analysis on each library/application individually. A global analysis would cause you to test new code and all the libraries you are using (for every single application!). The instrumentor does not really use a lexer (tokenizer). The techniques are probably more similar to image processing than parsing. As you might imagine, this doesnt work in the general case. CCov tries to be forgiving, but it simply doesnt understand obfuscated code. Rather than calling it a bug, I think its an significant feature. Simple code probably has fewer bugs than complex code. Not only is this tool aimed at test coverage analysis, it is also helps you improve your coding style. There are still some rough edges, but I am mostly satisfied with the degree of strictness..

Requirements: No special requirements
Platforms: Linux
Keyword: Analysis C C++ Ccov Ccovinstrument Code Code For Coverage Libraries Programming Test Test Coverage Work
Users rating: 0/10

License: Freeware Size: 15.36 KB
USER REVIEWS
More Reviews or Write Review


CCOVINSTRUMENT RELATED
Development Tools  -  BEM Code for 2D Pulsating Cylinder 1.0
This is the code for calculating solid angle C, surface pressure ps, and field pressure pf coming out from a pulsating cylinder with radius of r and normal velocity vn in an unbounded two dimensional acoustic domain using the solution of Helmholtz...
10 KB  
Development Tools  -  What's New for Object-Oriented Programming in MATLAB Webinar - Code Examples 1.0
These are the code examples used in the "What's New for Object-Oriented Programming in MATLABdlT«" webinar, which described the new object oriented features in Release 2008a.To use the code, add the top folder to your path. See the test* M-files...
112.64 KB  
Programming  -  TSLibraryImport 1.0
Objective-C class + sample code for importing files from user's iPod Library in iOS4.
6.75 MB  
Development Tools  -  TANGO Project - ALGENCAN 1.0
TANGO Project web page: http://www.ime.usp.br/~egbirgin/tango/ALGENCAN: Fortran code for general nonlinear programming that does not use matrix manipulations at all and, so, is able to solve extremely large problems with moderate computer time....
30.72 KB  
Libraries  -  ExtUtils::CBuilder 0.19
ExtUtils::CBuilder is a Perl module to compile and link C code for Perl modules. SYNOPSIS use ExtUtils::CBuilder; my $b = ExtUtils::CBuilder->new(%options); $obj_file = $b->compile(source => MyModule.c); $lib_file = $b->link(objects =>...
19.46 KB  
Libraries  -  GNU Common C++ 1.5.7
GNU Common C++ project is a C++ framework offering portable support for threading, sockets, file access, daemons, persistence, serial I/O, XML parsing, and system services, initially started by David Sugar and Daniel Silverstone. GNU Common C++...
849.92 KB  
Libraries  -  C/Invoke 1.0
C/Invoke is a library for connecting to C libraries at runtime. This differs from the typical method of interfacing with C, which involves writing static definitions which are then compiled to a machine-dependant format. C/Invoke provides a...
71.68 KB  
Libraries  -  Class::MethodMaker::V1Compat 2.08
Class::MethodMaker::V1Compat is a V1 compatibility code for C::MM. SYNOPSIS This class is for internal implementation only. It is not a public API. Class::MethodMaker version 2 strives for backward-compatiblity with version 1 as far as...
88.06 KB  
Shell & Desktop  -  spuug 0.2
spuug is a little tool that generates the boilerplate code for GObjects. I you dont know what they are, then probably this tool is of little use to you... spuug can be used for plain GObjects, but also for GTK+-widgets etc., and tries to be a...
24.58 KB  
Development Editors  -  Easy Code for GoAsm 1.01
Easy Code is a visual programming setting in ensemble language, designed to 32-bit build Windows applications. To compile and link projects designed in this visual setting, Easy Code uses the EcGo programming tool packet, that includes among other...
1024 B  
NEW DOWNLOADS IN PROGRAMMING, LIBRARIES
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB  
Libraries  -  wolfSSL 4.0.0
The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating...
3.88 MB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB