Folosire vmchecker

În caz de probleme, trebuie trimis mail către vmchecker-request@cursuri.cs.pub.ro.

Acces server

Initial step

Trimiteți cheia publică cuiva care are deja acces.

Spre exemplu Laurei (laura@linux.com)

In general

Proiectarea Algoritmilor
ssh pa@elf.cs.pub.ro
Programare Seria CA
ssh pc@elf.cs.pub.ro
Programare Seria CBCD
ssh pc-cb@elf.cs.pub.ro

Configurarea unei teme noi

Update fisier config

Se modifică fișierul ~/vmchecker-storer/config similar cu tema 1 sau tema 2.

Se caută secțiunea cu [[assignment 1-hubble]] sau [[assignment 2-conquer]] și se creează una asemănătoare pentru noua temă, modificând corespunzător.

Obligatoriu numele temei este de forma 1-hubble sau 2-conquer. Cifră-liniuță-nume.

Adăugare arhivă de teste

Arhiva trebuie obligatoriu să aibă același nume cu tema. (vezi formatul de mai sus).

Se adaugă în: ~/vmchecker-storer/tests/. Exemplu:

=
pc@elf:~$ ls ~/vmchecker-storer/tests/
1-hubble.zip  2-conquer.zip

Everything should work!

Vizualizare teme

Toate temele submise se află într-un repo git generat automat.

Spre exemplu, pentru tema nr. 1:

pc@elf:~$ ls ~/vmchecker-storer/repo/1-hubble/
adela_adriana.sandulescu   catalin.stanciu2712         florin_cristian.hurezeanu   mihail_razvan.cojocaru
adela_ioana.hintiu         cezar_mihai.ghimbas         florin_george.bostinaru     mihai.mihailescu
[...]

Pentru fiecare student este creat automat un director.

Structura directorului unui student/temă

Cum arată un astfel de director?

pc@elf:~$ ls ~/vmchecker-storer/repo/1-hubble/prenume.nume/
current                         sb_2012.11.05__22.08.52_rnd948  sb_2012.11.05__23.08.48_rnd590
sb_2012.11.05__21.18.51_rnd436  sb_2012.11.05__22.23.14_rnd8    sb_2012.11.05__23.13.08_rnd175
sb_2012.11.05__21.32.34_rnd17   sb_2012.11.05__22.48.06_rnd239  sb_2012.11.05__23.15.05_rnd653
sb_2012.11.05__21.42.43_rnd52   sb_2012.11.05__22.51.46_rnd16   sb_2012.11.05__23.24.58_rnd19
sb_2012.11.05__21.48.00_rnd21   sb_2012.11.05__22.57.24_rnd313
sb_2012.11.05__21.52.42_rnd671  sb_2012.11.05__23.00.14_rnd459

current este un link simbolic către ultima temă trimisă. Restul reprezintă versiuni mai vechi, salvate corespunzător după data la care au fost trimise.

Cum arată directorul current? (de fapt, și toate celelalte)

pc@elf:~$ ls ~/vmchecker-storer/repo/1-hubble/prenume.nume/current
archive.zip  git  results

archive.zip este chiar arhiva submisă.

git este un director ce conține printre alte lucruri, un director numit archive cu conținutul arhivei submise dezarhivat.

Nu este necesar să vizualizați sursele din git/archive/*. vim știe să citească arhive. Eu folosesc direct vim archive.zip.

results este un director în care vmchecker stochează rezultatele rulării temei

Corectare teme

Cum ziceam mai sus, rezultatele rulării pe vmchecker sunt puse în directorul results sub formatul următor:

pc@elf:~$ ls ~/vmchecker-storer/repo/1-hubble/prenume.nume/current/results/
build-stderr.vmr  build-stdout.vmr  grade.vmr  run-stderr.vmr  run-stdout.vmr  vmchecker-stderr.vmr

Ce face fiecare fișier?

  • build-stderr.vmr - output scris la stderr în timp-ul etapei de build
  • build-stdout.vmr - output scris la stdout în timp-ul etapei de build
  • run-stderr.vmr - output scris la stderr în timp-ul etapei de run
  • run-stdout.vmr - output scris la stdout în timp-ul etapei de run
  • vmchecker-stderr.vmr - eventualele mesaje de eroare “scuipate” de vmchecker
  • grade.vmr - fișier folosit pentru feedback-ul asistentului

Cum se corectează o temă eficient?

  • Te uiți în interfața web și vezi câte teste trec
  • Treci în grade.vmr cu minus punctele corespunzătoare pentru testele picate
  • Mai adaugi în grade.vmr și eventuale alte depunctări (cu minus) sau bonusuri (cu plus)
  • Verifici în interfața web punctajul final (depunctările de întârziere se calculează automat)
  • Treci nota și în catalog (google spreadsheet)

Cum se folosește grade.vmr

Depunctările în urma întârzierilor sunt scăzute automat.

Depunctările în urma testelor picate trebuie scăzute de mână.

Exemplu de format pentru grade.vmr:

+0.0: nice coding style :)
-5.0: tests failed
-0.20: New memory leak modification (In function execCommand,
in file tema0.c, at line 189;)
-0.20: Use of unitialized variable (In function add, in file
tema0.c, at line 61;)
-0.10: Use of non-static variables or functions in a single
module (In file tema0.c, at line 21; In file tema0.c, at line 32; In
file tema0.c, at line 46; In file tema0.c, at line 55; In file
tema0.c at line 79; In file tema0.c, at line 103; In file tema0.c, at
line 113; In file tema0.c, at line 124; In file tema0.c, at line 134;
In file tema0.c, at line 143; In file tema0.c, at line 162;)

Calculele se fac ulterior automat. Trebuie doar respectat formatul.

Workflow Windows

Dacă preferați să aveți la dispoziție o interfață grafică mai degrabă decât să faceți totul din terminal, se poate folosi Visual Studio Code împreună cu extensia SSH FS pentru a corecta mai ușor.

Configurare

După ce ați instalat extensia, apăsați Ctrl+Shift+P și selectați SSH FS: Create a SSH FS Configuration. Trebuie să aveți configurate următoarele câmpuri:

  • Host: elf.cs.pub.ro
  • Port: 22
  • Root: ~
  • Username: cel corezspunzător materiei, spre exemplu pc-cb
  • Private key: calea către cheia privată (în general pe Linux va fi în ~/.ssh/id_rsa, trebuie să o copiați pe Windows)

Dacă veți corecta la mai multe materii, este util să puneți Name ca numele materiei și Group ca vmchecker pentru a păstra toate configurațiile la un loc.

Conectare

După ce salvați configurația, vă puteți conecta apăsând Ctrl+Shift+P și selectând întâi SSH FS: Connect as Workspace folder și apoi configurația dorită.

sd-ca/vmchecker.txt · Last modified: 2023/05/29 08:52 by emil.racec
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0