27.02.2014 Aufrufe

4 Unit Tests

4 Unit Tests

4 Unit Tests

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

92<br />

6 <strong>Unit</strong>-<strong>Tests</strong><br />

/*******************************************************/<br />

void file_sqrt()<br />

/* aus dem Flashspeicher mit ASCII-Zeilen werden jene gelesen, <br />

* die nur aus einem int-Zahlenwert >= 0 bestehen; für diese<br />

* Zahlen wird die Quadratwurzel gebildet und das Ergebnis <br />

* in Datei out.txt geschrieben.<br />

* Die Eingangsdatei darf keine Zeilen länger als 79 Zeichen haben. <br />

* Zahlen, die größer als der größte darstellbare <br />

* vorzeichenbehaftete int-Wert sind, werden ignoriert.<br />

* Ist der Flashzugriff nicht möglich, bleibt<br />

* out.txt unverändert.<br />

*******************************************************/<br />

{<br />

int nIn = flash_open();<br />

if (NULL != nIn)<br />

{<br />

char szString[80];<br />

int iInput;<br />

FILE *nOut = fopen("out.txt", "w+");<br />

while (flash_gets(szString, sizeof(szString), nIn))<br />

{<br />

unsigned i;<br />

bool bNumber = true;<br />

for(i = 0; i < strlen(szString) - 1; i++)<br />

{<br />

if (!isdigit(szString[i])) bNumber = false;<br />

}<br />

if (!bNumber) continue; /* Zeile ignorieren */<br />

/* negative Zahlen und Kommazahlen schaffen es<br />

* nicht bis hierher, weil Minus und das Komma<br />

* isdigit() == 0 liefern */<br />

if (sscanf(szString,"%i\n", &iInput))<br />

{<br />

/* wenn es klappt auf int zu konvertieren */<br />

fprintf(nOut, "%d\n",<br />

(int) sqrt((float)iInput));<br />

}<br />

else<br />

{<br />

/* Überlauf wird ignoriert */<br />

}<br />

}<br />

}<br />

Listing 6–2<br />

} /* while */<br />

fclose(nOut);<br />

(void) flash_close(nIn);<br />

Die zu testende Datei – Testobjekt.c – besteht aus einer einzigen Funktion.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!