[lsb-discuss] GdkGeneral test fail
Stew Benedict
stewb at linux-foundation.org
Fri Jan 11 04:18:44 PST 2008
On Fri, 11 Jan 2008, Andrius Tsen wrote:
> Hello,
> I ran LSB 3.0 test on RHEL4 Update 5 and RHEL5, things went well on RHEL5,
> but there are
> a lot of test fails on GTK test.
> The first fail is GdkGeneral, error message in test report is
>
> test case:
> /opt/lsb/test/desktop/gtkvts/tet_tmp_dir/15063aa/tests/functions/GdkGeneral/GdkGeneral,
> TP number: 2
> GdkGeneral.c, line 145:
> gdk_get_program_class: failed
>
> Then i check out the lsb-gtkvts source code from your bzr lsb devel
> repository, compile the this case and rerun it singlely,
> tet_xres files contains following:
>
> 15|0 3.7-lite 1|TCM Start
> 400|0 1 2 08:54:14|IC Start
> 200|0 1 08:54:14|TP Start
> 520|0 1 00017581 1 1|test case: ./GdkGeneral, TP number: 1
> 220|0 1 0 08:54:14|PASS
> 200|0 2 08:54:14|TP Start
> 520|0 2 00017581 1 1|test case: ./GdkGeneral, TP number: 2
> 520|0 2 00017581 1 2|GdkGeneral.c, line 145:
> 520|0 2 00017581 1 3|gdk_get_program_class: failed
> 220|0 2 1 08:54:14|FAIL
> 410|0 1 2 08:54:14|IC End
>
> Seems the same issue as first run, then i copy the compiled binary file to
> RHEL5 box, 2 Passed, no fail.
> 143
> 144 if (strcmp(gdk_get_program_class(), ".") != 0){
> 145 TEST_FAIL("gdk_get_program_class: failed", NULL);
> 146 }
>
> A glance into the source code, add a debuging tet_printf , found the
> gdk_get_program_class() actually return an
> empty string, not a "." on RHEL4U5 box compared to RHEL5, so the test
> failed.
> The gtk2 package is gtk2-2.4.13-22 on RHEL4U5 and gtk2-2.10.4-16 on RHEL5,
> i don't know whether
> the gdk_get_program_class return differently on different version in the
> same testcase.
> Is this a TSD or something else?
>
I don't recall seeing this particular case before. It may just be behavioral
differences with 2.4.x. The LSB spec and tests are based on 2.6, I
believe, and the navigator says these came in with LSB 3.1.
Reference spec:
http://www.gtk.org/api/2.6/gdk/gdk-General.html#gdk-get-program-class
gdk_get_program_class ()
const char* gdk_get_program_class (void);
Gets the program class. Unless the program class has explicitly been set
with gdk_set_program_class() or with the --class commandline option, the
default value is the program name (determined with g_get_prgname()) with
the first character converted to uppercase.
Returns: the program class.
g_get_prgname ()
gchar* g_get_prgname (void);
Gets the name of the program. This name should not be localized, contrast
with g_get_application_name(). (If you are using GDK or GTK+ the program
name is set in gdk_init(), which is called by gtk_init(). The program name
is found by taking the last component of argv[0].)
Returns: the name of the program. The returned string
belongs to GLib and must not be modified or freed.
I am able to duplicate the same failure on a system with
libgtk+2.0_0-2.2.4.
I looks like the test code manipulates argv[0] in the startup code:
argv = calloc(argc, sizeof(char*));
argv[0] = (char*)strdup("");
gtk_init(&argc, &argv);
I'm not really seeing where the "." comes in, nor am I finding a gtk+-2.4
API reference to see if the behavior was defined differently. Links I do
find that claim to point to 2.0 end up at the unstable API reference.
--
Stew Benedict
The Linux Foundation
More information about the lsb-discuss
mailing list