Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Linux Tools Project/EPP Testing"
(New page: = Eclipse IDE for C/C++ Linux Developers Manual Testing = The Linux Tools team is responsible for an EPP package (look for it [http://www.eclipse.org/downloads/ here]). The following is a...) |
(→Autotools) |
||
(21 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
= Eclipse IDE for C/C++ Linux Developers Manual Testing = | = Eclipse IDE for C/C++ Linux Developers Manual Testing = | ||
− | The Linux Tools team is responsible for an EPP package (look for it [http://www.eclipse.org/downloads/ here]). The following is a list of our manual test steps. | + | The Linux Tools team is responsible for an EPP package (look for it [http://www.eclipse.org/downloads/ here]). The following is a list of our manual test steps. Test projects can be found in this archive file: http://fedorapeople.org/~overholt/LinuxToolsTestProjects.zip. |
== ChangeLog == | == ChangeLog == | ||
* ensure ChangeLog preferences are set | * ensure ChangeLog preferences are set | ||
− | * make | + | * make changes (add, remove, modify) in a Linux Tools CVS repo and press Ctrl-Alt-p |
− | * verify that ChangeLog entry gets written | + | * verify that ChangeLog entry gets written and that new and removed are automatically filled in |
* verify that Ctrl-clicking on files in ChangeLog opens them | * verify that Ctrl-clicking on files in ChangeLog opens them | ||
+ | * pick a C file and do a Ctrl-Alt-c in a function | ||
+ | * verify that the C function is specified in the ChangeLog | ||
+ | * pick a java file and do Ctrl-Alt-C in a method | ||
+ | * verify that the Java method is specified in the ChangeLog | ||
+ | * for ChangeLog + SVN testing, use http://dev.eclipse.org/svnroot/technology/org.eclipse.linuxtools/autotools/trunk/org.eclipse.linuxtools.cdt.autotools | ||
+ | * for ChangeLog + CVS testing, use :pserver:anonymous@sourceware.org:/cvs/eclipse module: autotools->sources | ||
+ | |||
+ | Note that Ctrl-Alt-p conflicts with the Subversive "Create patch" keybinding but after disabling it, you should be able to prepare a ChangeLog entry. | ||
== RPM == | == RPM == | ||
Line 14: | Line 22: | ||
== Valgrind == | == Valgrind == | ||
− | * generate massif graph; click around graph and details table and verify code opens | + | * create a hello world C project |
− | * | + | * add the line: <nowiki>void *p = malloc(5000);</nowiki> |
− | * | + | * build and right click on binary and choose Profile using Valgrind |
− | + | * this should use memcheck and bring up the Valgrind window with error noted for unfreed malloc | |
+ | * verify error marker is in hello.c and that clicking on error in Valgrind window brings up line in editor | ||
+ | * click on X icon in Valgrind window to verify error marker is removed | ||
+ | * right click on binary and choose Profiling Configurations | ||
+ | * under Valgrind, choose the current configuration for a.out and then in the Valgrind option tab select massif | ||
+ | * generate massif graph; click around graph and details table and verify code opens for snapshots | ||
+ | * test helgrind's xml output parsing and expand/collapse of results | ||
+ | * run cachegrind and test all plug-ins options and the expected output | ||
== OProfile == | == OProfile == | ||
* ensure error messages are present for requiring the running of the installation script | * ensure error messages are present for requiring the running of the installation script | ||
− | * | + | * perform <tt># opcontrol --deinit</tt> and <tt># echo 0 > /proc/sys/kernel/nmi_watchdog</tt> |
− | * double-click in output to verify source integration functions properly | + | * create project with factorial.c program below |
+ | * for factorial project, go to Project Properties->Autotools->Configure Settings->Advanced and click on Debug (-g) | ||
+ | * profile binary using OProfile and verify OProfile shows values | ||
+ | * double-click in OProfile output to verify source integration functions properly | ||
+ | |||
+ | <code> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | long long factorial(int x) { | ||
+ | long long result = x; | ||
+ | while (x > 1) | ||
+ | result = result * (x-- - 1); | ||
+ | return result; | ||
+ | } | ||
+ | |||
+ | main() | ||
+ | { | ||
+ | long long x; | ||
+ | int i; | ||
+ | for (i = 0; i < 1000000; ++i) | ||
+ | x = factorial(20); | ||
+ | printf("result is %Ld\n", x); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | == Perf == | ||
+ | * use the same project as the OProfile test | ||
+ | * profile the binary using Perf | ||
+ | * verify the Perf dialog comes up and there is data for the main executable as well as the kernel | ||
== Autotools == | == Autotools == | ||
− | * create a hello world autotools project | + | * create a hello world gnu autotools project named "hello" from new C Project Wizard |
− | * ensure project builds and can run | + | * ensure project builds and can run executable |
+ | * verify there is a Configure console for the project as well as a build console | ||
+ | * open project's configure.ac file and verify macros colourized and outline view exists | ||
+ | * hover over AC_INIT and make sure hover exists | ||
+ | * open project properties and ensure there is an Autotools entry in the tree | ||
+ | * open it and make sure that there are General and Configure Settings tree entries | ||
+ | * click on Configure Settings tree entry to make sure view comes up ok on right | ||
+ | * do the same for General tree entry and click on Tools and Editors tabs | ||
+ | * close property view | ||
+ | * open up sample/hello.c in the hello world project | ||
+ | * ensure that there are no warnings or errors in editor | ||
+ | * close Eclipse and restart | ||
+ | * verify that there are no warnings or errors in open hello.c file | ||
+ | * from Project menu select Reconfigure project and make sure project reconfigures | ||
+ | * verify there is a Configure console as well as the configuration appears in the CDT Global Build Console | ||
+ | * from Project menu select Invoke Autotools | ||
+ | * verify there is autoconf, automake, aclocal, autoheader, libtoolize, autoreconf | ||
+ | * select autoheader | ||
+ | * in the autoheader menu, add --help option and hit OK | ||
+ | * verify that there is an Autotools console and that it contains the help info for autoheader | ||
+ | * create a C++ hello world project from the C++ project wizard | ||
+ | * verify it builds and runs the executable | ||
+ | * import a CVS autotools project (sourceware.org:/cvs/eclipse) specify anonymous and pserver and choose to use existing module | ||
+ | * open autotools in viewer and select sources, then hit next button | ||
+ | * choose to use new project wizard and hit Finish | ||
+ | * select C/C++ -> C project | ||
+ | * from C project wizard dialog select GNU Autotools -> empty project and hit Finish | ||
+ | * there will be a timing issue with the build and CVS checkout | ||
+ | * select Project->Reconfigure project and reconfigure project | ||
+ | * build project after that and make sure the executable runs (hello world type project) | ||
+ | |||
+ | == Libhover == | ||
+ | * go to previous Autotools hello world project | ||
+ | * open sample/hello.c in editor | ||
+ | * hover over puts function and verify that description is returned | ||
+ | * create new line in C file | ||
+ | * type mem and then hit CTRL+space and verify choice of C mem functions appears | ||
+ | * go to Project->Properties and open C/C++ General tree element | ||
+ | * click on Documentation tree element | ||
+ | * in Help Books list uncheck glibc entry and click Ok button | ||
+ | * go back to hello.c file in editor and hover over puts again | ||
+ | * verify that hover only shows prototype of function and no description | ||
+ | * open Window->Preferences->Library Hover | ||
+ | * verify that there is a Devhelp sub-category | ||
+ | * make sure some devhelp documentation is installed (e.g. pango-devel) | ||
+ | * in the Devhelp page attempt to regenerate the devhelp hover | ||
+ | * close preferences | ||
+ | * go to hello.c again and click CTRL+space | ||
+ | * verify that functions from devhelp documentation are offered | ||
+ | * restart Eclipse and verify that items from devhelp documentation show up in Help Contents | ||
== GProf/GCov == | == GProf/GCov == | ||
− | * open gmon.out and *.gcda to verify viewers come up | + | * open gmon.out and *.gcno/*.gcda to verify viewers come up |
* ensure linking with source code functions properly | * ensure linking with source code functions properly | ||
== SystemTap == | == SystemTap == | ||
− | * | + | |
+ | * Run eclipse and create a new General Project. | ||
+ | * Click on File -> new -> Systemtap -> Systemtap Script. | ||
+ | ** Follow the wizard to create a new script under the General Project you've just created. | ||
+ | * By now the function view and probe views should be populated. Ensure that that is the case. | ||
+ | * Write a small script. Here is a sample script: | ||
+ | global read, write, start | ||
+ | |||
+ | probe begin { | ||
+ | start = gettimeofday_s() | ||
+ | } | ||
+ | |||
+ | probe syscall.write { | ||
+ | write += count | ||
+ | } | ||
+ | |||
+ | probe syscall.read { | ||
+ | read += count | ||
+ | } | ||
+ | |||
+ | probe timer.jiffies(100){ | ||
+ | printf(""); | ||
+ | } | ||
+ | |||
+ | probe timer.ms(1000) { | ||
+ | printf("%d\t%d\t%d\n", (gettimeofday_s()-start), read, write) | ||
+ | read=0 | ||
+ | write=0 | ||
+ | } | ||
+ | |||
+ | * Run it through run configurations. Try out the various options there. | ||
+ | * If you have systemtap installed the script should run otherwise you should be presented with a dialog telling you that systemtap is missing. If so, install it and try again | ||
+ | |||
+ | == Help Contents == | ||
+ | * click on Help->Help Contents | ||
+ | * verify there are help documents for Autotools, Gcov, Gprof, Libhover, Valgrind, OProfile, ChangeLog | ||
+ | * also verify there is a GNU Tools entry with tools such as gcc, ld, binutils | ||
+ | * click on the documentation to make sure there are no obvious flaws when they open |
Latest revision as of 16:32, 11 June 2014
Contents
Eclipse IDE for C/C++ Linux Developers Manual Testing
The Linux Tools team is responsible for an EPP package (look for it here). The following is a list of our manual test steps. Test projects can be found in this archive file: http://fedorapeople.org/~overholt/LinuxToolsTestProjects.zip.
ChangeLog
- ensure ChangeLog preferences are set
- make changes (add, remove, modify) in a Linux Tools CVS repo and press Ctrl-Alt-p
- verify that ChangeLog entry gets written and that new and removed are automatically filled in
- verify that Ctrl-clicking on files in ChangeLog opens them
- pick a C file and do a Ctrl-Alt-c in a function
- verify that the C function is specified in the ChangeLog
- pick a java file and do Ctrl-Alt-C in a method
- verify that the Java method is specified in the ChangeLog
- for ChangeLog + SVN testing, use http://dev.eclipse.org/svnroot/technology/org.eclipse.linuxtools/autotools/trunk/org.eclipse.linuxtools.cdt.autotools
- for ChangeLog + CVS testing, use :pserver:anonymous@sourceware.org:/cvs/eclipse module: autotools->sources
Note that Ctrl-Alt-p conflicts with the Subversive "Create patch" keybinding but after disabling it, you should be able to prepare a ChangeLog entry.
RPM
- create an RPM project
- edit the .spec a bit, using templates and completion
- verify Ctrl-Alt-c uses ChangeLog name/email
Valgrind
- create a hello world C project
- add the line: void *p = malloc(5000);
- build and right click on binary and choose Profile using Valgrind
- this should use memcheck and bring up the Valgrind window with error noted for unfreed malloc
- verify error marker is in hello.c and that clicking on error in Valgrind window brings up line in editor
- click on X icon in Valgrind window to verify error marker is removed
- right click on binary and choose Profiling Configurations
- under Valgrind, choose the current configuration for a.out and then in the Valgrind option tab select massif
- generate massif graph; click around graph and details table and verify code opens for snapshots
- test helgrind's xml output parsing and expand/collapse of results
- run cachegrind and test all plug-ins options and the expected output
OProfile
- ensure error messages are present for requiring the running of the installation script
- perform # opcontrol --deinit and # echo 0 > /proc/sys/kernel/nmi_watchdog
- create project with factorial.c program below
- for factorial project, go to Project Properties->Autotools->Configure Settings->Advanced and click on Debug (-g)
- profile binary using OProfile and verify OProfile shows values
- double-click in OProfile output to verify source integration functions properly
#include <stdio.h> long long factorial(int x) { long long result = x; while (x > 1) result = result * (x-- - 1); return result; } main() { long long x; int i; for (i = 0; i < 1000000; ++i) x = factorial(20); printf("result is %Ld\n", x); }
Perf
- use the same project as the OProfile test
- profile the binary using Perf
- verify the Perf dialog comes up and there is data for the main executable as well as the kernel
Autotools
- create a hello world gnu autotools project named "hello" from new C Project Wizard
- ensure project builds and can run executable
- verify there is a Configure console for the project as well as a build console
- open project's configure.ac file and verify macros colourized and outline view exists
- hover over AC_INIT and make sure hover exists
- open project properties and ensure there is an Autotools entry in the tree
- open it and make sure that there are General and Configure Settings tree entries
- click on Configure Settings tree entry to make sure view comes up ok on right
- do the same for General tree entry and click on Tools and Editors tabs
- close property view
- open up sample/hello.c in the hello world project
- ensure that there are no warnings or errors in editor
- close Eclipse and restart
- verify that there are no warnings or errors in open hello.c file
- from Project menu select Reconfigure project and make sure project reconfigures
- verify there is a Configure console as well as the configuration appears in the CDT Global Build Console
- from Project menu select Invoke Autotools
- verify there is autoconf, automake, aclocal, autoheader, libtoolize, autoreconf
- select autoheader
- in the autoheader menu, add --help option and hit OK
- verify that there is an Autotools console and that it contains the help info for autoheader
- create a C++ hello world project from the C++ project wizard
- verify it builds and runs the executable
- import a CVS autotools project (sourceware.org:/cvs/eclipse) specify anonymous and pserver and choose to use existing module
- open autotools in viewer and select sources, then hit next button
- choose to use new project wizard and hit Finish
- select C/C++ -> C project
- from C project wizard dialog select GNU Autotools -> empty project and hit Finish
- there will be a timing issue with the build and CVS checkout
- select Project->Reconfigure project and reconfigure project
- build project after that and make sure the executable runs (hello world type project)
Libhover
- go to previous Autotools hello world project
- open sample/hello.c in editor
- hover over puts function and verify that description is returned
- create new line in C file
- type mem and then hit CTRL+space and verify choice of C mem functions appears
- go to Project->Properties and open C/C++ General tree element
- click on Documentation tree element
- in Help Books list uncheck glibc entry and click Ok button
- go back to hello.c file in editor and hover over puts again
- verify that hover only shows prototype of function and no description
- open Window->Preferences->Library Hover
- verify that there is a Devhelp sub-category
- make sure some devhelp documentation is installed (e.g. pango-devel)
- in the Devhelp page attempt to regenerate the devhelp hover
- close preferences
- go to hello.c again and click CTRL+space
- verify that functions from devhelp documentation are offered
- restart Eclipse and verify that items from devhelp documentation show up in Help Contents
GProf/GCov
- open gmon.out and *.gcno/*.gcda to verify viewers come up
- ensure linking with source code functions properly
SystemTap
- Run eclipse and create a new General Project.
- Click on File -> new -> Systemtap -> Systemtap Script.
- Follow the wizard to create a new script under the General Project you've just created.
- By now the function view and probe views should be populated. Ensure that that is the case.
- Write a small script. Here is a sample script:
global read, write, start probe begin { start = gettimeofday_s() } probe syscall.write { write += count } probe syscall.read { read += count } probe timer.jiffies(100){ printf(""); } probe timer.ms(1000) { printf("%d\t%d\t%d\n", (gettimeofday_s()-start), read, write) read=0 write=0 }
- Run it through run configurations. Try out the various options there.
- If you have systemtap installed the script should run otherwise you should be presented with a dialog telling you that systemtap is missing. If so, install it and try again
Help Contents
- click on Help->Help Contents
- verify there are help documents for Autotools, Gcov, Gprof, Libhover, Valgrind, OProfile, ChangeLog
- also verify there is a GNU Tools entry with tools such as gcc, ld, binutils
- click on the documentation to make sure there are no obvious flaws when they open