From 35176aa3e23a4660af9f139262213e7f47af0794 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Fri, 25 Feb 2005 20:09:30 +0000 Subject: [PATCH] =?utf8?q?Organizaci=C3=B3n.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- doc/examples/Makefile | 75 +++++++++++++++++++ doc/{ => examples}/log.ini | 0 doc/{ => examples}/sercom.ini | 0 test/clean.sh | 5 ++ test/data/ejercicios/1/Makefile | 75 +++++++++++++++++++ .../1/casos_de_prueba/basico/stderr | 1 + .../ejercicios/1/casos_de_prueba/basico/stdin | 1 + .../1/casos_de_prueba/basico/stdout | 1 + .../1/casos_de_prueba/complicado/stderr | 1 + .../1/casos_de_prueba/complicado/stdin | 1 + .../1/casos_de_prueba/complicado/stdout | 2 + .../1/casos_de_prueba/tramposo/salidas/--full | 1 + .../1/casos_de_prueba/tramposo/stderr | 1 + .../1/casos_de_prueba/tramposo/stdin | 1 + .../1/casos_de_prueba/tramposo/stdout | 4 + test/log.ini | 66 ++++++++++++++++ test/sercom.ini | 54 +++++++++++++ test/test_data.sql | 40 ++++++++++ 18 files changed, 329 insertions(+) create mode 100644 doc/examples/Makefile rename doc/{ => examples}/log.ini (100%) rename doc/{ => examples}/sercom.ini (100%) create mode 100755 test/clean.sh create mode 100644 test/data/ejercicios/1/Makefile create mode 100644 test/data/ejercicios/1/casos_de_prueba/basico/stderr create mode 100644 test/data/ejercicios/1/casos_de_prueba/basico/stdin create mode 100644 test/data/ejercicios/1/casos_de_prueba/basico/stdout create mode 100644 test/data/ejercicios/1/casos_de_prueba/complicado/stderr create mode 100644 test/data/ejercicios/1/casos_de_prueba/complicado/stdin create mode 100644 test/data/ejercicios/1/casos_de_prueba/complicado/stdout create mode 100644 test/data/ejercicios/1/casos_de_prueba/tramposo/salidas/--full create mode 100644 test/data/ejercicios/1/casos_de_prueba/tramposo/stderr create mode 100644 test/data/ejercicios/1/casos_de_prueba/tramposo/stdin create mode 100644 test/data/ejercicios/1/casos_de_prueba/tramposo/stdout create mode 100644 test/log.ini create mode 100644 test/sercom.ini create mode 100644 test/test_data.sql diff --git a/doc/examples/Makefile b/doc/examples/Makefile new file mode 100644 index 0000000..9e2bb80 --- /dev/null +++ b/doc/examples/Makefile @@ -0,0 +1,75 @@ +# Makefile de ejemplo para C++ +# +# Creado: jue abr 15 15:34:19 ART 2004 +# +# Copyleft 2004 - Leandro Lucarella, Bajo licencia GPL [http://www.gnu.org/] +# + +# CONFIGURACION +################ + +# Nombre del ejecutable. +target = tp + +# Extensión de los archivos a compilar (c para C, cpp o cc o cxx para C++). +extension = c + +# Archivos con el código fuente que componen el ejecutable. Si no se especifica, +# toma todos los archivos con la extensión mencionada. Para especificar hay que +# descomentar la línea (quitarle el '#' del principio). +# NOTA: No poner cabeceras (.h). +#fuentes = entrada.cpp + +# Si es un programa GTK+, descomentá (quitale el '#' a) la siguiente línea. +#gtk = si + + +# CONFIGURACION "AVANZADA" +########################### + +# Opciones para el compilador C. +CFLAGS = -Werror -Wall -ggdb -ansi -pedantic -DDEBUG + +# Opciones para el compilador C++. +CXXFLAGS = $(CFLAGS) -fno-inline + +# Opciones del enlazador. +LDFLAGS=-static + + +# VARIABLES CALCULADAS A PARTIR DE LA CONFIGURACION +#################################################### + +# Agrego flags y libs de GTK+ de ser necesario. +ifdef gtk +CFLAGS += $(shell pkg-config --cflags gtk+-2.0) +CXXFLAGS += $(shell pkg-config --cflags gtk+-2.0) +LDFLAGS += $(shell pkg-config --libs gtk+-2.0) +endif + +# Uso enlazador de c++ si es código no C. +ifeq ($(extension), c) +enlazador = $(CC) +else +enlazador = $(CXX) +endif + +# Si no especifica archivos, tomo todos. +fuentes ?= $(wildcard *.$(extension)) + + +# REGLAS +######### + +.PHONY: all clean + +all: $(target) + +o_files = $(patsubst %.$(extension),%.o,$(fuentes)) + +$(target): $(o_files) + $(enlazador) $(LDFLAGS) $(o_files) $(LOADLIBES) $(LDLIBS) -o $(target) + +clean: + @$(RM) -fv *.o $(target) + diff --git a/doc/log.ini b/doc/examples/log.ini similarity index 100% rename from doc/log.ini rename to doc/examples/log.ini diff --git a/doc/sercom.ini b/doc/examples/sercom.ini similarity index 100% rename from doc/sercom.ini rename to doc/examples/sercom.ini diff --git a/test/clean.sh b/test/clean.sh new file mode 100755 index 0000000..297f862 --- /dev/null +++ b/test/clean.sh @@ -0,0 +1,5 @@ +#!/bin/sh +../src/sc_dbq Intento set 1 compila=None \ + && ../src/sc_dbq Prueba rm 1 \ + && ../src/sc_dbq Prueba rm 2 \ + && ../src/sc_dbq Prueba rm 3 diff --git a/test/data/ejercicios/1/Makefile b/test/data/ejercicios/1/Makefile new file mode 100644 index 0000000..89fc2f3 --- /dev/null +++ b/test/data/ejercicios/1/Makefile @@ -0,0 +1,75 @@ +# Makefile de ejemplo para C++ +# +# Creado: jue abr 15 15:34:19 ART 2004 +# +# Copyleft 2004 - Leandro Lucarella, Bajo licencia GPL [http://www.gnu.org/] +# + +# CONFIGURACION +################ + +# Nombre del ejecutable. +target = tp + +# Extensión de los archivos a compilar (c para C, cpp o cc o cxx para C++). +extension = c + +# Archivos con el código fuente que componen el ejecutable. Si no se especifica, +# toma todos los archivos con la extensión mencionada. Para especificar hay que +# descomentar la línea (quitarle el '#' del principio). +# NOTA: No poner cabeceras (.h). +#fuentes = entrada.cpp + +# Si es un programa GTK+, descomentá (quitale el '#' a) la siguiente línea. +#gtk = si + + +# CONFIGURACION "AVANZADA" +########################### + +# Opciones para el compilador C. +CFLAGS = -Wall -ggdb -ansi -pedantic -DDEBUG + +# Opciones para el compilador C++. +CXXFLAGS = $(CFLAGS) -fno-inline + +# Opciones del enlazador. +LDFLAGS=-static + + +# VARIABLES CALCULADAS A PARTIR DE LA CONFIGURACION +#################################################### + +# Agrego flags y libs de GTK+ de ser necesario. +ifdef gtk +CFLAGS += $(shell pkg-config --cflags gtk+-2.0) +CXXFLAGS += $(shell pkg-config --cflags gtk+-2.0) +LDFLAGS += $(shell pkg-config --libs gtk+-2.0) +endif + +# Uso enlazador de c++ si es código no C. +ifeq ($(extension), c) +enlazador = $(CC) +else +enlazador = $(CXX) +endif + +# Si no especifica archivos, tomo todos. +fuentes ?= $(wildcard *.$(extension)) + + +# REGLAS +######### + +.PHONY: all clean + +all: $(target) + +o_files = $(patsubst %.$(extension),%.o,$(fuentes)) + +$(target): $(o_files) + $(enlazador) $(LDFLAGS) $(o_files) $(LOADLIBES) $(LDLIBS) -o $(target) + +clean: + @$(RM) -fv *.o $(target) + diff --git a/test/data/ejercicios/1/casos_de_prueba/basico/stderr b/test/data/ejercicios/1/casos_de_prueba/basico/stderr new file mode 100644 index 0000000..e75eca6 --- /dev/null +++ b/test/data/ejercicios/1/casos_de_prueba/basico/stderr @@ -0,0 +1 @@ +basico diff --git a/test/data/ejercicios/1/casos_de_prueba/basico/stdin b/test/data/ejercicios/1/casos_de_prueba/basico/stdin new file mode 100644 index 0000000..e75eca6 --- /dev/null +++ b/test/data/ejercicios/1/casos_de_prueba/basico/stdin @@ -0,0 +1 @@ +basico diff --git a/test/data/ejercicios/1/casos_de_prueba/basico/stdout b/test/data/ejercicios/1/casos_de_prueba/basico/stdout new file mode 100644 index 0000000..5e148ad --- /dev/null +++ b/test/data/ejercicios/1/casos_de_prueba/basico/stdout @@ -0,0 +1 @@ +/tp diff --git a/test/data/ejercicios/1/casos_de_prueba/complicado/stderr b/test/data/ejercicios/1/casos_de_prueba/complicado/stderr new file mode 100644 index 0000000..9e1c745 --- /dev/null +++ b/test/data/ejercicios/1/casos_de_prueba/complicado/stderr @@ -0,0 +1 @@ +complicado diff --git a/test/data/ejercicios/1/casos_de_prueba/complicado/stdin b/test/data/ejercicios/1/casos_de_prueba/complicado/stdin new file mode 100644 index 0000000..9e1c745 --- /dev/null +++ b/test/data/ejercicios/1/casos_de_prueba/complicado/stdin @@ -0,0 +1 @@ +complicado diff --git a/test/data/ejercicios/1/casos_de_prueba/complicado/stdout b/test/data/ejercicios/1/casos_de_prueba/complicado/stdout new file mode 100644 index 0000000..a477cf6 --- /dev/null +++ b/test/data/ejercicios/1/casos_de_prueba/complicado/stdout @@ -0,0 +1,2 @@ +/tp +--full diff --git a/test/data/ejercicios/1/casos_de_prueba/tramposo/salidas/--full b/test/data/ejercicios/1/casos_de_prueba/tramposo/salidas/--full new file mode 100644 index 0000000..f49605e --- /dev/null +++ b/test/data/ejercicios/1/casos_de_prueba/tramposo/salidas/--full @@ -0,0 +1 @@ +--no-full diff --git a/test/data/ejercicios/1/casos_de_prueba/tramposo/stderr b/test/data/ejercicios/1/casos_de_prueba/tramposo/stderr new file mode 100644 index 0000000..187684a --- /dev/null +++ b/test/data/ejercicios/1/casos_de_prueba/tramposo/stderr @@ -0,0 +1 @@ +tramposo diff --git a/test/data/ejercicios/1/casos_de_prueba/tramposo/stdin b/test/data/ejercicios/1/casos_de_prueba/tramposo/stdin new file mode 100644 index 0000000..187684a --- /dev/null +++ b/test/data/ejercicios/1/casos_de_prueba/tramposo/stdin @@ -0,0 +1 @@ +tramposo diff --git a/test/data/ejercicios/1/casos_de_prueba/tramposo/stdout b/test/data/ejercicios/1/casos_de_prueba/tramposo/stdout new file mode 100644 index 0000000..fcaf557 --- /dev/null +++ b/test/data/ejercicios/1/casos_de_prueba/tramposo/stdout @@ -0,0 +1,4 @@ +/tp +--full +--no-full +parametros "raros" diff --git a/test/log.ini b/test/log.ini new file mode 100644 index 0000000..c6d7aaf --- /dev/null +++ b/test/log.ini @@ -0,0 +1,66 @@ + +; No editar los loggers +[loggers] +keys = root,fetch,test + +; A partir de acá se puede editar +[handlers] +;keys = file,mail,stderr +keys = stderr + +[formatters] +keys = file,mail,stderr + +[logger_root] +level = NOTSET +;handlers = file,mail,stderr +handlers = stderr + +[logger_fetch] +level = NOTSET +handlers = +propagate = 1 +qualname = fetch + +[logger_test] +level = NOTSET +handlers = +propagate = 1 +qualname = test + +;[handler_file] +;class = FileHandler +;level = DEBUG +;formatter = file +;args = ('sercom.log', 'a') + +[handler_stderr] +class = StreamHandler +level = DEBUG +formatter = stderr +args = (sys.stderr,) + +;[handler_mail] +;class = handlers.SMTPHandler +;level = WARNING +;formatter = mail +; smtp, from, to, subject +;args = ('llucax.hn.org', 'sercom@llucax.hn.org', 'luca@llucax.hn.org', '[SERCOM] Log') + +[formatter_file] +format = %(asctime)s %(name)5s[%(process)d] %(levelname)-8s %(message)s +datefmt = %c + +[formatter_stderr] +format = %(levelname)s: %(message)s +datefmt = %c + +[formatter_mail] +format = %(levelname)s en %(name)s (pid %(process)d) + en el archivo %(pathname)s, linea %(lineno)d + el %(asctime)s + ------------------------------------------------------------------------ + %(message)s + ------------------------------------------------------------------------ +datefmt = %c + diff --git a/test/sercom.ini b/test/sercom.ini new file mode 100644 index 0000000..84574b9 --- /dev/null +++ b/test/sercom.ini @@ -0,0 +1,54 @@ + +; Opciones generales para todos los programadas de sercom +[general] +; Nivel de reporte de errores. +error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR +; Directorio base en donde almacenar los archivos de datos (entregas, intentos) +data_dir = /home/luca/taller/sercom/test/data +; Claves para validar la identidad del alumno (a usar para crear el código) +claves = entropia +; Cantidad de segundos a esperar para ver si hay una nueva entrega +intervalo = 5 +; Usuario con el cual ejecutar las pruebas +user = luca +; Tiempo de CPU máximo disponible por omisión para probar un intento (seg) +tiempo_cpu = 60 + +[log] +; Nivel de loggeo: CRITICAL, ERROR, WARNING, INFO, DEBUG +; (ver T/logconstants.php) +level = DEBUG +; Archivo de log (si no se especifica, se usa la salida de error) +file = + +[mail] +; E-Mail del administrador, a donde enviar errores graves, avisos, etc +admin = luca@llucax.hn.org +; Dirección desde la cual enviar mails +from = TALLER DE PROGRAMACION I <7542@fi.uba.ar> +; Mailbox local en donde hacer backup de los mails entregados +; (si está vacío no se hace backup). +mbox_bak = mbox + + +; fiuba (imap) +server = mail.fi.uba.ar +;user = llucare +;pass = theterror1 +user = mat7542 +pass = mecondav +protocol = imap +options = novalidate-cert/ssl + + +[dbo] +database = sqlite:////home/luca/taller/sercom/test/corrector.sqlite +;?debug=1 +schema_location = T/DBO/schema/ +class_location = T/DBO/ +require_prefix = T/DBO/ +class_prefix = T_DBO_ +;debug = 1 +;extends_location = DB/DataObject.php +;extends = DB_DataObject + diff --git a/test/test_data.sql b/test/test_data.sql new file mode 100644 index 0000000..02fdd62 --- /dev/null +++ b/test/test_data.sql @@ -0,0 +1,40 @@ + +-- Cursos (id, anio, cuatrimestre, curso, descripcion) +INSERT INTO curso VALUES (1, 2004, 1, 1, 'Martes'); +INSERT INTO curso VALUES (2, 2004, 1, 2, 'Jueves'); +INSERT INTO curso VALUES (3, 2004, 2, 1, 'Martes'); +INSERT INTO curso VALUES (4, 2004, 2, 2, 'Jueves'); +INSERT INTO curso VALUES (5, 2005, 1, 1, 'Martes'); +INSERT INTO curso VALUES (6, 2005, 1, 2, 'Jueves'); +INSERT INTO curso VALUES (7, 2005, 2, 1, 'Martes'); +INSERT INTO curso VALUES (8, 2005, 2, 2, 'Jueves'); + +-- Docentes (id, nombre, mail, corrige) +INSERT INTO docente VALUES (1, 'Leandro Lucarella', 'luca-taller@llucax.hn.org', 1); +INSERT INTO docente VALUES (2, 'Gonzalo Merayo', 'merayo@gmail.com', 1); +INSERT INTO docente VALUES (3, 'Andrés Veiga', 'aveiga@advtechnology.com.ar', 0); +INSERT INTO docente VALUES (4, 'Lautaro Mazzitelli', 'lmazzitelli@gmail.com', 1); + +-- Docentes por curso (curso_id, docente_id) +INSERT INTO curso_docente VALUES (6, 1); +INSERT INTO curso_docente VALUES (5, 2); +INSERT INTO curso_docente VALUES (6, 4); + +-- Inscriptos (id, padron, curso_id, mail, activo) +INSERT INTO inscripto VALUES (1, 77891, 6, 'luca-alumno@llucax.hn.org', 1); +INSERT INTO inscripto VALUES (2, 77892, 6, 'luca-alumno2@llucax.hn.org', 1); + +-- Ejercicios (id, nombre, numero, docente_id) +INSERT INTO ejercicio VALUES (1, 'Punteros inteligentes', 4, 1); +INSERT INTO ejercicio VALUES (2, 'XML parser', 4, 2); + +-- Entregas (id, curso_id, nro_ejercicio, entrega, ejercicio_id, desde, hasta) +INSERT INTO entrega VALUES (1, 6, 4, 1, 1, '2005-01-26', '2005-02-26 20:00:00'); +INSERT INTO entrega VALUES (2, 6, 4, 2, 1, '2005-02-06', '2005-02-16 20:00:00'); + +-- Casos de prueba (id, ejercicio_id, nombre, privado, activo, parametros, codigo_retorno, tiempo_cpu) +INSERT INTO caso_de_prueba VALUES (1, 1, 'basico', 0, 1, NULL, 0, NULL); +INSERT INTO caso_de_prueba VALUES (2, 1, 'complicado', 0, 1, '--full', 0, 600); +INSERT INTO caso_de_prueba VALUES (3, 1, 'tramposo', 1, 1, '--full --no-full "parametros \"raros\""', NULL, NULL); + +-- vim: set tw=0 et : -- 2.43.0