mirror of
https://github.com/szymon-jozef/static-site-generator.git
synced 2026-09-07 12:10:42 +02:00
renamed tests_files to test_files
fixed test paths
This commit is contained in:
60
src/makefile
60
src/makefile
@@ -1,37 +1,51 @@
|
||||
CXX = g++
|
||||
CXXFLAGS = -std=c++17 -Wall
|
||||
TEST_LIBS = -lmd4c-html -lCatch2Main -lCatch2
|
||||
CXXFLAGS = -std=c++17 -Wall -Wextra -O2 -I .
|
||||
LIBS = -lmd4c-html
|
||||
TEST_DIR = tests
|
||||
TEST_LIBS = -lmd4c-html -lCatch2Main -lCatch2
|
||||
|
||||
all: blog
|
||||
BUILD_DIR = build
|
||||
|
||||
blog: main.o config.o utils.o
|
||||
$(CXX) $(CXXFLAGS) main.o config.o -o blog $(LIBS)
|
||||
SOURCES = main.cpp \
|
||||
config/config.cpp \
|
||||
format/format.cpp \
|
||||
markdown/markdown.cpp
|
||||
|
||||
main.o: main.cpp config.hpp
|
||||
$(CXX) $(CXXFLAGS) -c main.cpp
|
||||
OBJECTS = $(SOURCES:%.cpp=$(BUILD_DIR)/%.o)
|
||||
|
||||
config.o: config.cpp config.hpp
|
||||
$(CXX) $(CXXFLAGS) -c config.cpp
|
||||
TEST_SOURCES = tests.cpp \
|
||||
config/config.cpp \
|
||||
format/format.cpp \
|
||||
markdown/markdown.cpp
|
||||
|
||||
utils.o: utils.cpp utils.hpp
|
||||
$(CXX) $(CXXFLAGS) -c utils.cpp
|
||||
TEST_OBJECTS = $(TEST_SOURCES:%.cpp=$(BUILD_DIR)/%.o)
|
||||
|
||||
markdown.o: markdown.cpp markdown.hpp
|
||||
$(CXX) $(CXXFLAGS) -c markdown.cpp
|
||||
TARGET = blog
|
||||
TEST_TARGET = tests
|
||||
|
||||
formatter.o: formatter.cpp formatter.hpp
|
||||
$(CXX) $(CXXFLAGS) -c formatter.cpp
|
||||
.PHONY: all clean test directories
|
||||
|
||||
tests.o: $(TEST_DIR)/tests.cpp config.hpp
|
||||
$(CXX) $(CXXFLAGS) -c $(TEST_DIR)/tests.cpp
|
||||
all: directories $(TARGET)
|
||||
|
||||
tests: tests.o config.o utils.o markdown.o formatter.o
|
||||
g++ -std=c++17 -Wall tests.o config.o utils.o markdown.o formatter.o -o $(TEST_DIR)/tests $(TEST_LIBS)
|
||||
directories:
|
||||
@mkdir -p $(BUILD_DIR)/config
|
||||
@mkdir -p $(BUILD_DIR)/format
|
||||
@mkdir -p $(BUILD_DIR)/markdown
|
||||
|
||||
check: tests
|
||||
$(TEST_DIR)/tests
|
||||
$(TARGET): $(OBJECTS)
|
||||
$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
$(TEST_TARGET): $(TEST_OBJECTS)
|
||||
$(CXX) $(CXXFLAGS) -o $@ $^ $(TEST_LIBS)
|
||||
|
||||
$(BUILD_DIR)/%.o: %.cpp
|
||||
@mkdir -p $(dir $@)
|
||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
||||
|
||||
test: directories $(TEST_TARGET)
|
||||
./$(TEST_TARGET)
|
||||
|
||||
clean:
|
||||
rm -f *.o $(TEST_DIR)/*.o blog $(TEST_DIR)/tests
|
||||
rm -rf $(BUILD_DIR)
|
||||
rm -f $(TARGET) $(TEST_TARGET)
|
||||
|
||||
rebuild: clean all
|
||||
|
||||
|
Before Width: | Height: | Size: 290 KiB After Width: | Height: | Size: 290 KiB |
@@ -1,7 +1,6 @@
|
||||
#include "../config.hpp"
|
||||
#include "../formatter.hpp"
|
||||
#include "../markdown.hpp"
|
||||
#include "../utils.hpp"
|
||||
#include "config/config.hpp"
|
||||
#include "format/format.hpp"
|
||||
#include "markdown/markdown.hpp"
|
||||
#include <catch2/catch_all.hpp>
|
||||
#include <catch2/catch_test_macros.hpp>
|
||||
#include <ctime>
|
||||
@@ -9,7 +8,7 @@
|
||||
#include <string>
|
||||
|
||||
TEST_CASE("Checking config file read", "[config]") {
|
||||
const std::string FILE_NAME = "tests/config.toml";
|
||||
const std::string FILE_NAME = "test_files/config.toml";
|
||||
|
||||
Config config = get_config(FILE_NAME);
|
||||
|
||||
@@ -21,7 +20,7 @@ TEST_CASE("Checking config file read", "[config]") {
|
||||
}
|
||||
|
||||
TEST_CASE("get_metadata function data correctness test") {
|
||||
const std::string FILE_NAME = "./tests/post.md";
|
||||
const std::string FILE_NAME = "./test_files/post.md";
|
||||
Metadata result = get_metadata(FILE_NAME).value();
|
||||
|
||||
std::string expected_author = "joseph";
|
||||
@@ -42,13 +41,13 @@ TEST_CASE("get_metadata function data correctness test") {
|
||||
}
|
||||
|
||||
TEST_CASE("get_metadata function test with a file that doesn't have metadata") {
|
||||
const std::string FILE_NAME = ".tests/no_metadata_post.md";
|
||||
const std::string FILE_NAME = ".test_files/no_metadata_post.md";
|
||||
std::optional<Metadata> result = get_metadata(FILE_NAME);
|
||||
REQUIRE(result == std::nullopt);
|
||||
}
|
||||
|
||||
TEST_CASE("get_html function parsing test") {
|
||||
const std::string INPUT = "./tests/post.md";
|
||||
const std::string INPUT = "./test_files/post.md";
|
||||
const std::string EXPECTED_OUTPUT = R"HTML(<h1>This is an example post</h1>
|
||||
<p>In this example we will do a couple of cool markdown things.</p>
|
||||
<h2>This is a h2 header</h2>
|
||||
@@ -86,7 +85,7 @@ int main() {
|
||||
}
|
||||
|
||||
TEST_CASE("formatter injection test") {
|
||||
const std::string FILE_NAME = "./tests/formatter.html";
|
||||
const std::string FILE_NAME = "./test_files/formatter.html";
|
||||
const std::string EXPECTED_OUTPUT = R"(<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
[general]
|
||||
lang = "en"
|
||||
title = "Blog"
|
||||
|
||||
[contact]
|
||||
author = "author"
|
||||
email = "email@example.com"
|
||||
signal = "signal url"
|
||||
@@ -1,11 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Document</title>
|
||||
</head>
|
||||
<body>
|
||||
{{replace_me}}
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 290 KiB |
@@ -1,2 +0,0 @@
|
||||
# This markdown has no metadata.
|
||||
That's bad. Don't do it. It's for tests only.
|
||||
@@ -1,42 +0,0 @@
|
||||
---
|
||||
[metadata]
|
||||
author = "joseph"
|
||||
date = 2026-01-01
|
||||
title = "Example of a blog post"
|
||||
tags = ["blog", "test", "lalilulelo"]
|
||||
---
|
||||
# This is an example post
|
||||
|
||||
In this example we will do a couple of cool markdown things.
|
||||
|
||||
## This is a h2 header
|
||||
*This text is written in italic!*
|
||||
### Look at this!
|
||||
**This text is BOLD!**
|
||||
|
||||
## Hello world!
|
||||
```cpp
|
||||
#include <iostream>
|
||||
|
||||
int main() {
|
||||
std::cout << "Hello world!" << std::endl;
|
||||
}
|
||||
```
|
||||
This is super cool!
|
||||
|
||||
## Time to link some random website!
|
||||
This [should be clickable](https://example.com)
|
||||
|
||||
## Image test
|
||||

|
||||
|
||||
## This is an ordered list
|
||||
1. one
|
||||
2. six
|
||||
3. seven
|
||||
|
||||
## This is an unordered one
|
||||
- six
|
||||
- nine
|
||||
- six
|
||||
- nine
|
||||
Reference in New Issue
Block a user