Skip to content
Snippets Groups Projects
Verified Commit 18d33345 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

fixed makefile, main compilation and test compilation

parent 4ee8a912
No related branches found
No related tags found
1 merge request!3Resolve "add makefile with structure"
This commit is part of merge request !3. Comments created here will be created in the context of that merge request.
CC:=gcc
CFLAGS:= -g -Wextra -pedantic -fsanitize=address
CFLAGS:=-g -Wall -Wextra -pedantic -fsanitize=address
LDFLGS:=-fsanitize=address
NAME:=stack
$(NAME): main.o $(NAME).o
$(CC) $(CFLAGS) -o $@ $^ -lSDL2
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
tests: $(NAME)_tests.o $(NAME).o
$(CC) $(CFLAGS) -o $@ $^
test: $(NAME)_test.o $(NAME).o
$(CC) $(CFLAGS) -o $@ $^
./test
$(NAME).o: $(NAME).h
.PHONY: clean
clean:
rm -f *.o $(NAME) tests
rm -f *.o $(NAME) tests
#include "stack.h"
#include <stdio.h>
#include "../include/stack.h"
#include <stdlib.h>
int main(void) {
return EXIT_SUCCESS;
}
\ No newline at end of file
return EXIT_SUCCESS;
}
#include "stack.h"
#include <stdio.h>
#include <stdlib.h>
#include "stack.h"
#define DEFAULT_CAPACITY 4
void stack_init(stack *s)
{
s->top = -1;
void stack_init(stack *s) {
s->top = -1;
s->capacity = DEFAULT_CAPACITY;
s->data = malloc(sizeof(int) * DEFAULT_CAPACITY);
s->data = malloc(sizeof(int) * DEFAULT_CAPACITY);
}
void stack_destroy(stack *s){
void stack_destroy(stack *s) {
free(s->data);
s->data = NULL;
s->data = NULL;
s->capacity = -1;
s->top = -1;
s->top = -1;
}
void stack_pop(stack *s, int *value){
if (stack_is_empty(*s)) {
return;
}
if (s->top == s->capacity/4){
s->capacity /= 2;
s->data = realloc(s->data, sizeof(int)*s->capacity);
}
void stack_pop(stack *s, int *value) {
if (stack_is_empty(*s)) {
return;
}
if (s->top == s->capacity / 4) {
s->capacity /= 2;
s->data = realloc(s->data, sizeof(int) * s->capacity);
}
*value = s->data[s->top];
s->top -= 1;
*value = s->data[s->top];
s->top -= 1;
}
void stack_peek(stack s, int *value){
void stack_peek(stack s, int *value) {
if (!stack_is_empty(s)) {
*value = s.data[s.top];
}
}
void stack_print(const stack s) {
//TODO: replace if statement with following as soon as relevant function is implemented
//if (!stack_is_empty()) {
if (s.top >= 0) {
printf(" TOP\n--------------------\n");
for (int* spot = s.data + s.top; spot >= s.data; --spot) {
printf("%8d | %12d\n", spot - s.data, *spot);
}
printf("--------------------\n BOTTOM\n");
} else {
printf("STACK EMPTY\n");
}
// TODO: replace if statement with following as soon as relevant function is
// implemented if (!stack_is_empty()) {
if (s.top >= 0) {
printf(" TOP\n--------------------\n");
for (int *spot = s.data + s.top; spot >= s.data; --spot) {
printf("%8ld | %12d\n", spot - s.data, *spot);
}
printf("--------------------\n BOTTOM\n");
} else {
printf("STACK EMPTY\n");
}
}
void stack_clone(stack s, stack *clone) {
clone->top = s.top;
clone->top = s.top;
clone->capacity = s.capacity;
clone->data = malloc(sizeof(int) * s.capacity);
clone->data = malloc(sizeof(int) * s.capacity);
for (int i = 0; i <= s.top && i < s.capacity; i++) {
clone->data[i] = s.data[i];
}
}
int get_length(stack s)
{
int get_length(stack s) {
return s.top + 1;
}
#include "minunit.h"
#include "stack.h"
#include <stdlib.h>
MU_TEST(stack_init_test) {
// Arrange
......@@ -20,8 +21,8 @@ MU_TEST_SUITE(stack_test_suite) {
MU_RUN_TEST(stack_init_test);
}
int main () {
int main() {
MU_RUN_SUITE(stack_test_suite);
MU_REPORT();
return MU_EXIT_CODE;
}
\ No newline at end of file
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment