This simplistic patch adds the ability to run a specific test from the console in gtkperf. Tests are selected simply by number based on their entry in the test selection combobox. (0 is all tests, 1 is text entry, 2 is combobox etc. etc.)
Code:
diff --git a/pts/test-resources/gtkperf/install.sh b/pts/test-resources/gtkperf/install.sh index 9fc0f60..f152c8c 100644 --- a/pts/test-resources/gtkperf/install.sh +++ b/pts/test-resources/gtkperf/install.sh @@ -7,51 +7,115 @@ mkdir $THIS_DIR/gtkperf_env tar -xvf gtkperf_0.40.tar.gz cd gtkperf/ + +patch -p1 <<'EOT' +--- gtkperf/src/callbacks.c 2005-10-30 11:33:42.000000000 +0000 ++++ gtkperf-patched/src/callbacks.c 2008-05-23 23:41:17.000000000 +0100 +@@ -219,6 +219,13 @@ + } + + ++void ++on_cmdline_test(char *optarg) ++{ ++ appdata->test_type = atoi(optarg); ++} ++ ++ + /* Initialize appdata */ + void + setup_appdata(AppData * appdata_in) +@@ -398,7 +405,7 @@ + appdata->pixbuf_drawing = gdk_pixbuf_new_from_file (filename, NULL); + + gtk_combo_box_set_active (GTK_COMBO_BOX (appdata->combobox_testtype), +- 0); ++ appdata->test_type); + + /* create end mark to info textview */ + GtkTextIter iter; +--- gtkperf/src/callbacks.h 2005-10-30 10:21:23.000000000 +0000 ++++ gtkperf-patched/src/callbacks.h 2008-05-23 23:22:30.000000000 +0100 +@@ -13,6 +13,7 @@ + void on_cmdline_run_all (); + void on_cmdline_help () ; + void on_cmdline_count (char *optarg) ; ++void on_cmdline_test (char *optarg) ; + void on_window_main_show (AppData * data); + + gboolean +--- gtkperf/src/main.c 2005-10-30 11:26:42.000000000 +0000 ++++ gtkperf-patched/src/main.c 2008-05-23 23:44:02.000000000 +0100 +@@ -65,9 +65,10 @@ + {"help", 0, 0, 0}, + {"automatic", 0, 0, 0}, + {"count", 1, 0, 0}, ++ {"test", 1, 0, 0}, + {0, 0, 0, 0} + }; +- c = getopt_long (argc, argv, "hac:", ++ c = getopt_long (argc, argv, "hac:t:", + long_options, &option_index); + if (c == -1) + break; +@@ -104,6 +105,10 @@ + on_cmdline_count(optarg); + break; + ++ case 't': ++ on_cmdline_test(optarg); ++ break; ++ + default: + case 'h': + on_cmdline_help (); + +EOT + ./configure --prefix=$THIS_DIR/gtkperf_env make -j $NUM_CPU_JOBS make install cd .. rm -rf gtkperf/ -echo "#!/bin/sh - -if [ ! -f \$THIS_RUN_TIME.result ] - then - rm -f *.result - ./gtkperf_env/bin/gtkperf -a -c 2000 > \$THIS_RUN_TIME.result -fi +cat > gtkperf <<'EOT' +#!/bin/sh -case \"\$1\" in -\"COMBOBOX\") - cat \$THIS_RUN_TIME.result | grep \"GtkComboBox \" +case "$1" in +"COMBOBOX") + test=2 ;; -\"COMBOBOX_ENTRY\") - cat \$THIS_RUN_TIME.result | grep \"GtkComboBoxEntry \" +"COMBOBOX_ENTRY") + test=3 ;; -\"TOGGLE_BUTTON\") - cat \$THIS_RUN_TIME.result | grep \"GtkToggleButton \" +"TOGGLE_BUTTON") + test=6 ;; -\"CHECK_BUTTON\") - cat \$THIS_RUN_TIME.result | grep \"GtkCheckButton \" +"CHECK_BUTTON") + test=7 ;; -\"RADIO_BUTTON\") - cat \$THIS_RUN_TIME.result | grep \"GtkRadioButton \" +"RADIO_BUTTON") + test=8 ;; -\"TEXTVIEW_ADD\") - cat \$THIS_RUN_TIME.result | grep \"GtkTextView - Add text\" +"TEXTVIEW_ADD") + test=9 ;; -\"TEXTVIEW_SCROLL\") - cat \$THIS_RUN_TIME.result | grep \"GtkTextView - Scroll\" +"TEXTVIEW_SCROLL") + test=10 ;; -\"DRAWING_CIRCLES\") - cat \$THIS_RUN_TIME.result | grep \"GtkDrawingArea - Circles\" +"DRAWING_CIRCLES") + test=12 ;; -\"DRAWING_PIXBUFS\") - cat \$THIS_RUN_TIME.result | grep \"GtkDrawingArea - Pixbufs\" +"DRAWING_PIXBUFS") + test=14 ;; -\"TOTAL_TIME\") - cat \$THIS_RUN_TIME.result | grep \"Total\" +"TOTAL_TIME") + test=0 ;; esac -" > gtkperf + +./gtkperf_env/bin/gtkperf -a -c 2000 -t $test | grep "Total" + +EOT + chmod +x gtkperf