From cfddaae8801c8049d3663f88d55ca1661b6a65ab Mon Sep 17 00:00:00 2001
From: Diego Giovane Pasqualin <dpasqualin@c3sl.ufpr.br>
Date: Tue, 12 Jan 2016 11:44:09 -0200
Subject: [PATCH] Exemplo com make e artefatos

---
 Makefile    |  19 +++++++++++++++++++
 README.md   |  19 -------------------
 hello.c     |   6 ++++++
 hello.o     | Bin 0 -> 1504 bytes
 run-test.sh |  36 ++++++++++++++++++++++++++++++++++++
 5 files changed, 61 insertions(+), 19 deletions(-)
 create mode 100644 Makefile
 delete mode 100644 README.md
 create mode 100644 hello.c
 create mode 100644 hello.o
 create mode 100755 run-test.sh

diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..36b5417
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,19 @@
+CC=gcc
+CFLAGS=-I.
+OBJ = hello.o
+BIN = hello
+DEST = build
+
+all: hello
+	mkdir -p $(DEST)
+	mv $(BIN) $(DEST)
+
+%.o: %.c
+	$(CC) -c -o $@ $< $(CFLAGS)
+
+$(BIN): $(OBJ)
+	$(CC) -o $@ $^ $(CFLAGS)
+
+clean:
+	rm -f $(OBJ)
+	rm -rf $(DEST)
diff --git a/README.md b/README.md
deleted file mode 100644
index cbd32a9..0000000
--- a/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-Esse repositório contém exemplos de uso do sistema de integração contínua do
-gitlab.
-
-Cada exemplo encontra-se em um ramo diferente, nomeado como
-`exemplo/X`, onde X é um inteiro crescente. Normalmente, quanto maior X, mais
-funcionalidades são apresentadas.
-
-Para ver o primeiro exemplo mude para o *branch* `exemplo/1` com o comando abaixo e
-abra o arquivo `.gitlab-ci.yml`.
-
-```
-git checkout -t origin/exemplo/1
-```
-
-Todos os *builds* feitos aparecem no item *Builds*, aba *All*, do menu lateral esquerdo
-no Gitlab.
-
-Clique no valor sob a coluna *Status* para ver detalhes do *build*. Repare
-no campo *Ref*, que indica o *branch* onde a *build* foi executada.
diff --git a/hello.c b/hello.c
new file mode 100644
index 0000000..5e3ef85
--- /dev/null
+++ b/hello.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main(int argc, char** argv) {
+    printf("hello world\n");
+    return (0);
+}
diff --git a/hello.o b/hello.o
new file mode 100644
index 0000000000000000000000000000000000000000..71e4bd747d5c33101988f2086a43bc31545c6975
GIT binary patch
literal 1504
zcmb<-^>JfjWMqH=Mg}_u1P><4z+izS=l~XWVBlroVhHu<eCpBsMxe9yk4I<ehy5U_
z7a(E>h&XvTBQ+-{U!gp|C?|!1!QI)}N<kwusWh*oRKY~gLeE6ks1(dItTQyxGceJF
zh%zuRh=8;+FfcGy1u-yI2rx?XuyagcWMGhCfMAfc0*G+r6KG>{=4FfKVdntx^@=NV
zOA?b9^omQ0Aan+dRg{{Os8^C&QNo~?l30?+pqEr!%%E4458))|=jNv7l`!b#<(H)D
zx%-9c7MCO@XEW%5wWVgnrxhjUrh=@X1_rqu6r^luhC#xXfdM3sECo`F%$H_hU|>NO
zfU;+>LKp@Rih&yxh71f0;ILs}V32@{t3kz?p?nyX0Arxh==SSC%_LX9A=G{*G<#t7
z^Pq{N+iwZg5A!EXc@C7J1*KsWOh1fvg6fCK!{})+1{w|12NMp5>PL6~45$JNC=H`v
z;Sb{n;fTKz(D;MJ6Da;bdO;YZ7bY&qz`%eW_8|ESAcBE`ArVT$D0KIO_~>p2sjYw}
zDh`kW1_lODJa9te8YB<1A0&p&{syS~g+YpuFw{6C5$sHmIu?eH|FOw3V=b9L;egF0
zAaST?&<tZ{fI1RGoE=RB!exf%9ta;sGBcp(UIqqGxCkM+6PAzp7#J7?U>cEWZ~>{8
s%#fRyna5C2T2c&=gsJ6XU_f!LC`6h86n7xGKmQ>BW)DalgrUk90B|;4sQ>@~

literal 0
HcmV?d00001

diff --git a/run-test.sh b/run-test.sh
new file mode 100755
index 0000000..3ca8c00
--- /dev/null
+++ b/run-test.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+# Script que testa o hello. Esse é só um exemplo, existem inúmeras ferramentas de testes
+# por aí, procure não reinventar a roda.
+
+BIN="build/hello"
+
+# Testa se arquivo existe e é executável
+if ! test -x $BIN; then
+    echo "Binário inexistente"
+    exit 1
+fi
+
+# Testa código de retorno
+res=$(./$BIN)
+ret=$?
+echo -n "Testando código de retorno... "
+if test $ret -ne 0; then
+    echo "ERRO: Programa retornou erro $ret: $res"
+    exit 1
+fi
+echo "OK"
+
+# Testa valor de retorno
+expected="hello world"
+echo -n "Testando valor de retorno... "
+if test "$res" != "$expected"; then
+    echo "ERRO: Programa deveria retornar $expected, mas retornou \"$res\"."
+    exit 1
+fi
+echo "OK"
+
+# Se chegou até aqui, sucesso!
+echo "Todos os testes passaram!"
+
+exit 0
-- 
GitLab