Δοκιμές στη διαδρομή C

Μάθε πώς να δοκιμάζεις τις ασκήσεις σου σε C στο Exercism


Κάθε άσκηση παρέχει τα unit tests και μια συνταγή build για το Make. Την υλοποίηση τη γράφεις εσύ.

Κάθε αρχείο test είναι φτιαγμένο να συνδέεται με την υλοποίησή σου, ώστε να δημιουργείται ένα εκτελέσιμο στην κονσόλα που τρέχει τα tests. Το τρέξιμο του εκτελέσιμου των tests τυπώνει μηνύματα για κάθε test που αποτυγχάνει και αναφέρει μη μηδενική κατάσταση εξόδου όταν τα tests αποτυγχάνουν.

Για να δουλέψεις μια άσκηση:

  • Δημιούργησε το αρχικό build με το Make
  • Για κάθε unit test:
    • Αφαίρεσε τη γραμμή TEST_IGNORE().
    • Διόρθωσε τυχόν σφάλματα μεταγλώττισης, ώστε να αποτύχει το test.
    • Υλοποίησε μόνο ό,τι χρειάζεται για να περάσει το test.
    • Αναδιαμόρφωσε την υλοποίησή σου για να βελτιώσεις την αναγνωσιμότητα, να μειώσεις την επανάληψη κ.λπ.

Μεταγλώττιση και εκτέλεση των tests

Κάθε άσκηση θα φέρνει μαζί της ένα αρχείο makefile και ένα .c με τα unit tests. Δε θα χρειαστεί να επεξεργαστείς το αρχείο Make. Το αρχείο Make που παρέχεται υποθέτει ότι η υλοποίησή σου υπάρχει ως αρχείο κεφαλίδας (.h) και ως αρχείο πηγαίου κώδικα (.c) με το όνομα της άσκησης.

Για παράδειγμα, η άσκηση bob περιμένει μια υλοποίηση στα bob.h και bob.c. Για ασκήσεις με παύλες στο όνομά τους, τα αρχεία πηγαίου κώδικα υποτίθεται ότι χρησιμοποιούν κάτω παύλες, οπότε το word-count περιμένει τα word_count.h και word_count.c. Μπορεί να κρίνεις ότι η υλοποίησή σου είναι αρκετά απλή ώστε να χωράει εξ ολοκλήρου στο αρχείο κεφαλίδας, οπότε μπορείς να παραλείψεις το αρχείο .c.

Δημιούργησε τα αρχικά αρχεία της υλοποίησής σου πριν τρέξεις το Make. Αν δεν έχεις τα αρχεία bob.h και bob.c όταν τρέχεις το Make για την άσκηση bob, τότε το Make θα βγάλει σφάλμα ότι δε βρίσκει τα αρχεία. Αυτά τα αρχεία μπορούν να είναι κενά, αλλά πρέπει να υπάρχουν.

Κάνε build τον κώδικά σου

Ο πιο απλός τρόπος να κάνεις build τον κώδικά σου είναι να χρησιμοποιήσεις το make στη γραμμή εντολών (CLI). Στο Linux η γραμμή εντολών είναι διαθέσιμη στο bash ή σε κάτι παρόμοιο, στο MacOS χρησιμοποίησε το Terminal. Στα Windows 10 είναι διαθέσιμο το Bash του Windows Subsystem for Linux (WSL).

Για να το κάνεις αυτό, με την προϋπόθεση ότι ο τρέχων κατάλογος είναι ο φάκελος της άσκησης:

$ make

Αυτό θα μεταγλωττίσει τον κώδικά σου και θα τρέξει τα tests.

Το makefile έρχεται επίσης με ένα build που ελέγχει κάποια συνηθισμένα λάθη σχετικά με διαρροές μνήμης και πρόσβαση σε πίνακες εκτός ορίων. Για να τρέξεις αυτούς τους ελέγχους, χρησιμοποίησε το παρακάτω στη γραμμή εντολών:

$ make memcheck

Καθάρισμα

Για να καθαρίσεις μετά από ένα build, μπορείς να πεις στο make να διαγράψει όλα τα αρχεία εξόδου του build, μαζί με το εκτελέσιμο:

$ make clean

Εναλλακτικός τρόπος για build στο MacOS

Στο MacOS μπορείς επίσης να χρησιμοποιήσεις το Xcode. Για να κάνεις build τον κώδικα, διάλεξε Build από τη γραμμή εργαλείων.