From 6c21de0c0c0b31525642be0a2f19ad19c09affa4 Mon Sep 17 00:00:00 2001 From: Zhanna Tsitkov Date: Wed, 30 Nov 2011 22:28:43 +0000 Subject: [PATCH] Added Test Coverage topic git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25495 dc483132-0cff-0310-8789-dd5450dbe970 --- doc/rst_source/krb_build/index.rst | 1 + doc/rst_source/krb_build/test_cov.rst | 33 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 doc/rst_source/krb_build/test_cov.rst diff --git a/doc/rst_source/krb_build/index.rst b/doc/rst_source/krb_build/index.rst index 2de23864e..43d3fc2a1 100644 --- a/doc/rst_source/krb_build/index.rst +++ b/doc/rst_source/krb_build/index.rst @@ -46,6 +46,7 @@ Contents: doing_build.rst options2configure.rst osconf.rst + test_cov.rst diff --git a/doc/rst_source/krb_build/test_cov.rst b/doc/rst_source/krb_build/test_cov.rst new file mode 100644 index 000000000..02769fcb6 --- /dev/null +++ b/doc/rst_source/krb_build/test_cov.rst @@ -0,0 +1,33 @@ + +Test coverage +================= + +It is considered good practice to develop and maintain the test suite with high level +of test coverage, i.e. the tests that execute every single statement, every line of the code and +then validate the result. + +The GNU's *gcov* is a tool that analyses the frequency of execution of each line of the code. +For more details see GNU documentation http://gcc.gnu.org/onlinedocs/gcc/Gcov.html + +To invoke *gcov* on *krb5* tree, do *configure* with the following options and run the tests:: + + ./configure CFLAGS="-fprofile-arcs -ftest-coverage -O0" LIBS=-lgcov + make + make check + +It will result into creation of the new helper files with the extentions *gcno* and *gcda*. + +To validate the test coverage of the specific file, change the directory to +its location and run :: + + gcov -o filename.so.gcno filename.c + +To see the test coverage of the *filename.c* open a newly created file *filename.c.gcov* in the editor. + +Some recent test coverage result can be found at the http://k5wiki.kerberos.org/wiki/Test_coverage + + + + + + -- 2.26.2