[OSy] chyba v tst_area_list_add ?

Tomas Mikula tomas.mikula at gmail.com
Thu Dec 6 00:30:16 CET 2007


Dobry vecer!

Dufam, ze to tu este nebolo hlasene.
Na druhej strane je divne, ze to este nikto nehlasil, takze je
pravdepodobne, ze chyba je na mojej strane.
Prosim o skontrolovanie.

Mam podozrenie na chybu v testoch v subore tst_area_list.c vo funkcii
tst_area_list_add. Kontrola, ci sa dana oblast neprekryva s inou sa
tam testuje nasledovne:

if (pred_area->start + pred_area->size > start_page ||
	start_page + page_count > succ_area->start) {
	/* The inserted area would overlap with others */
	return EINVAL;
}

Nemalo by sa okrem toho este testovat, ci
pred_area->size a succ_area->size su nenulove?
Vo funkcii tst_area_list_init() sa prave nastavuje

mem->front.size = 0;

Teda podla mna by mal ten kod vyzerat asi takto:

if (pred_area->start + pred_area->size > start_page && pred_area->size ||
	start_page + page_count > succ_area->start && succ_area->size) {
	/* The inserted area would overlap with others */
	return EINVAL;
}


Ale ked som si ten kod takto upravil, tak mi testy spadnu na

Assertion failed in function tst_area_list_get_hole(),
../shared/tst_area_list.c:236.




More information about the NSWI004 mailing list