2010/06/30

Bug reports.

I've submitted two bug reports today. Both are against elfutils package.

One is crash /usr/bin/eu-strings if you run without any arguments.
https://bugzilla.redhat.com/show_bug.cgi?id=609476

The other is minor l10n bug.
https://bugzilla.redhat.com/show_bug.cgi?id=609468

2010/06/29

to be...

Today, I've submitted a ticket to fedora-qa's trac that request for a mentor to be a proventester.
I'd be happy to working with proventesters:-)

2010/06/28

memo: writing new autotest test case.

This is my memo about writing autotest test case.
At least, it requires control file, python file and test code.

This is a test code directories.
[masami@moon]~/autotest-0.12.0/client/tests/pwrite_test% ls . src
.:
.  ..  control  pwrite_test.py  pwrite_test.py.bk  pwrite_test.pyc  src

src:
.  ..  Makefile  pwrite_test.c

This is a control file. It defines some information e.g. test type, author and so forth.
AUTHOR = "your name "
EXPERIMENTAL = 'True'  # Not really, but this is only for testing autotest...
                       # not testing _with_ autotest.
NAME = "pwrite_test"
TEST_TYPE = "client"
TEST_CLASS = "General"
TEST_CATEGORY = "Functional"
TIME = "SHORT"
DOC = """\
Test program for pwrite(2) and pread(2).
"""

job.run_test('pwrite_test')
job.run_test() calls your python script which implements test.test class.

This is a python code. this file name is pwrite_test.py.
In the setup(), it changes current directory from somewhere to "src" directory. src directory contains your my test code then call make command to create test program.

import os
from autotest_lib.client.bin import test, utils


class pwrite_test(test.test):
    """
    @author: your name (your email address)
    """
    version = 1
    preserve_srcdir = True

    def setup(self):
        os.chdir(self.srcdir)
        utils.system('make')
        utils.system('make create_test_file')

    def initialize(self):
        self.job.require_gcc()
        self.results = None


    def run_once(self, num_groups=90):
        pwrite_test_bin = os.path.join(self.srcdir, 'pwrite_test')
        cmd = '%s' % (pwrite_test_bin)
        self.results = utils.system(cmd)
    
    def cleanup(self):
        os.chdir(self.srcdir)
        utils.system('make clean')
        os.remove(os.path.join(self.srcdir, '.version'))

This is a test code.
#include 
#include 
#include 
#include 
#include 
#include 
#include 

static const char filename[] = "/home/masami/autotest-0.12.0/client/tests/pwrite_test/src/test.txt";
static const int offset = 6;
static const int read_byte = 5;

int main(int argc, char **argv)
{
 char buf[16];
 int fd, ret;
 off_t off;

 fd = open(filename, O_RDWR);
 if (fd < 0) {
  printf("file open error\n");
  return -1;
 }
 
 errno = 0;

 // Read data from file.
 pread(fd, &buf, read_byte, offset);
 if (errno) {
  printf("pread faild\n");
  return -1;
 }

 // Read data shuold be "world".
 if (strcmp(buf, "world")) {
  printf("read buf isn't \"world\"\n");
  return -1;
 }

 off = lseek(fd, 0, SEEK_CUR);
 // cursor should be zero.
 if (off) {
  printf("cursor isn't 0\n");
  return -1;
 }

 strcpy(buf, "WORLD");
 errno = 0;
 ret = pwrite(fd, buf, strlen(buf), 6);
 if (errno) {
  printf("pwrite faild\n");
  return -1;
 }
 
 pread(fd, &buf, read_byte, offset);
 // Read data shuold be "world".
 if (strcmp(buf, "WORLD")) {
  printf("read buf isn't \"world\"\n");
  return -1;
 }

 off = lseek(fd, 0, SEEK_CUR);
 // cursor should be zero.
 if (off) {
  printf("cursor isn't 0\n");
  return -1;
 }
 
 close(fd);

 printf("Done.\n");

 return 0;
}
Then, you can run your test code.
[masami@moon]~/autotest-0.12.0/client% sudo ./bin/autotest tests/pwrite_test/control
23:35:06 INFO | Writing results to /home/masami/autotest-0.12.0/client/results/default
23:35:06 INFO | Initializing the state engine
23:35:06 INFO | Symlinking init scripts
23:35:08 INFO | START ---- ---- timestamp=1277735708 localtime=Jun 28 23:35:08 
23:35:08 INFO |  START pwrite_test pwrite_test timestamp=1277735708 localtime=Jun 28 23:35:08 
23:35:10 INFO | Test started. Number of iterations: 1
23:35:10 INFO | Executing iteration 1 of 1
23:35:10 INFO | Dropping caches between iterations
23:35:10 INFO | Test finished after 1 iterations.
23:35:12 INFO |   GOOD pwrite_test pwrite_test timestamp=1277735712 localtime=Jun 28 23:35:12 completed successfully
23:35:12 INFO |  END GOOD pwrite_test pwrite_test timestamp=1277735712 localtime=Jun 28 23:35:12 
23:35:12 INFO | END GOOD ---- ---- timestamp=1277735712 localtime=Jun 28 23:35:12

2010/06/17

Submitted a bug report.

I've submitted a bug report to Fedora's bugzilla today.

This is the evidence of the bug.
[masami@moon]~% ls ダウンロード
ls *** glibc detected *** /bin/zsh: double free or corruption (!prev): 0x00000000025e2c10 ***
*** glibc detected *** /bin/zsh: malloc(): memory corruption: 0x00000000025e2cc0 ***

2010/06/14

Started Updates Testing

I thought that better update testing environment is my main desktop environment because I use many softwares every day on it. so I enabled update-testing repo on it instead of test environemt.
AFKIK, it good test case because it's real use case, right? although, it may be job to fill update comment but it's ok. you know, helping QA activiteis is my purpose anyway.
Ahh, of course, I've installed fedora-easy-karma:P

2010/06/13

Sharing USB-HDD via nfs.

My main laptop has only two USB ports. It isn't enough, isn't it? Therefore, I use USB hub to plug USB-mouse and speaker.
However, my USB-HDDs need electricity. If I plug it into USB port directory, it works but USB hub doesn't. Luckly, I have an eeepc so that I decided to share USB-HDD via nfs.

At first, I tested to share local disk. Then I got following messages.
[masami@moon]~% LANG=C sudo mount -t nfs 192.168.1.26:/home/masami /mnt/home
mount: wrong fs type, bad option, bad superblock on 192.168.1.26:/home/masami,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount. helper program)
In some cases useful info is found in syslog - try
dmesg | tail or so

I tested to mount that directory at eeepc was no problems. Eeepc could mount directory by itself also /etc/hosts.allow and /etc/hosts.deny's setting is correct.
It seemed like fedora has some problem I thought.
Then, I googled and got answer that I should have installed nfs-utils package.
Finally, I could share USB-HDD via nfs:-)

Starting fedora life.


I used Debian for many years but I started to use Fedora recently for some reasons.
Anyway, I want to help to develop it. so, I'm reading Fedora's QA pages and created bugzilla account, subsrcibed some mailing lists, prepare testing environments on kvm.

I tried to create own live cd but I had one problem which is already reported to the Bugzilla. I added "LANG=C" before the sudo command and it worked fine:-) I did like this.
LANG=C sudo livecd-creator

I used FC13 repo instead of Rawhide. anyway, my PC may be ready to test FC14 but I need learn about QA activities.