bareme_03_2017.html 62 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817
  1. <!DOCTYPE html>
  2. <html lang='en'>
  3. <head>
  4. <meta charset='utf-8'>
  5. <meta content='IE=Edge,chrome=1' http-equiv='X-UA-Compatible'>
  6. <meta content='width=device-width,height=device-height,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0' name='viewport'>
  7. <meta content='yes' name='mobile-web-app-capable'>
  8. <meta content='yes' name='apple-mobile-web-app-capable'>
  9. <meta content='translucent-black' name='apple-mobile-web-app-status-bar-style'>
  10. <meta content='Intranet 42' name='apple-mobile-web-app-title'>
  11. <meta content='on' http-equiv='cleartype'>
  12. <link href='https://cdn.intra.42.fr/' rel='preconnect'>
  13. <link href='https://projects.intra.42.fr/assets/42_logo_black-684989d43d629b3c0ff6fd7e1157ee04db9bb7a73fba8ec4e01543d650a1c607.png' rel='icon' type='image/svg'>
  14. <link href='https://projects.intra.42.fr/assets/42_logo_black-684989d43d629b3c0ff6fd7e1157ee04db9bb7a73fba8ec4e01543d650a1c607.png' rel='shortcut icon' type='image/svg'>
  15. <link href='/opensearch.xml' rel='search' title='project' type='application/opensearchdescription+xml'>
  16. <!--[if lt IE 9]>
  17. <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.1/html5shiv.js"></script>
  18. <![endif]-->
  19. <title>Projects - Intra</title>
  20. <meta name="csrf-param" content="authenticity_token" />
  21. <meta name="csrf-token" content="dNt3/v7Zuhnhm84gS+O5mkpsrBdZaUEAUcC4th1HY5DK+GQrfY6EnVPk2KcOEhY3DdCmUJ2bGUthjYcnmC7RMQ==" />
  22. <link rel="stylesheet" media="all" href="/assets/application-85409f389b5a854f81946d1c2bfb6b7fc645cb80fe9cc0315dbab9d867fbbd9c.css" />
  23. <script>
  24. (function() {
  25. this._user = {
  26. "login": "mazimi",
  27. "id": 12760,
  28. "url": "https://profile.intra.42.fr/users/mazimi"
  29. };
  30. this._consumer_address = 'wss://meta.intra.42.fr/cable';
  31. }).call(this);
  32. </script>
  33. <script src="/assets/application-3c80f38e538037c452e3fa06212bb594f78028d7247504428386f413245597b4.js"></script>
  34. <body class=' '>
  35. <div class='notifications-flash-top-bar'>
  36. </div>
  37. <script>
  38. (function() {
  39. this._notifCount = 0;
  40. this._flashes = [];
  41. }).call(this);
  42. </script>
  43. <div class='notifications-container' data-flashes-url='https://profile.intra.42.fr/flashes' data-notifications-url='https://profile.intra.42.fr/notifications'></div>
  44. <div class='main-navbar'>
  45. <div class='main-navbar-left'>
  46. <div class='main-navbar-logo' data-turbolinks-scaffold>
  47. <a href="https://profile.intra.42.fr"><img alt="42" src="https://profile.intra.42.fr/assets/42_logo-7dfc9110a5319a308863b96bda33cea995046d1731cebb735e41b16255106c12.svg" />
  48. </a></div>
  49. <span class='hidden-sidebars main-menu-trigger lines-button x' data-trigger-menu=''>
  50. <span class='lines'></span>
  51. </span>
  52. <a class="search-mobile-button hidden-sidebars icon-search" href="https://profile.intra.42.fr/searches"></a>
  53. <form action='https://profile.intra.42.fr/searches/search' class='main-navbar-search hidden-xs' data-forum-url='https://forum.intra.42.fr/topics/' data-project-url='https://projects.intra.42.fr/' data-user-url='https://profile.intra.42.fr/users/' method='get'>
  54. <input autocomplete='off' autofocus class='search-input' name='query' placeholder='search...'>
  55. </form>
  56. </div>
  57. <div class='main-navbar-user-nav' data-turbolinks-scaffold>
  58. <div class='user-actions hidden-xs'>
  59. <span class='dropdown' id='quest-menu'>
  60. <a class='user-action labelable' data-toggle='dropdown' href='#'>
  61. <span class='icon-bookmark-3-1 user-action-icon labelable'></span>
  62. </a>
  63. <ul aria-labelledby='quest-menu' class='quest-container dropdown-menu dropdown-menu-right' role='menu'>
  64. <p class='quest-legend'>
  65. CURRENT MAIN QUEST
  66. </p>
  67. <li class='quest-item'>
  68. <h4 class='quest-header'>1 branch</h4>
  69. <p class='quest-description'>Complete 1 branch of the inner sphere circle.</p>
  70. </li>
  71. <li>
  72. <a href="https://profile.intra.42.fr/users/me/quests">See all quests</a>
  73. </li>
  74. </ul>
  75. </span>
  76. </div>
  77. <div class='user-actions hidden-xs'>
  78. <a class="user-action labelable" data-notification-drop="" href="#"><span class='icon-newspaper-2 user-action-icon'></span>
  79. <span class='user-action-count labeled' data-counter-count='0'>0</span>
  80. </a></div>
  81. <span class='dropdown'>
  82. <a data-toggle='dropdown' href='#'>
  83. <span data-login='mazimi'>
  84. mazimi
  85. </span>
  86. <div class='user-profile-picture visible-sidebars' style='background-image: url(https://cdn.intra.42.fr/users/small_mazimi.jpg)'></div>
  87. </a>
  88. <ul aria-labelledby='User menu' class='dropdown-menu' role='menu'>
  89. <li>
  90. <a href="https://profile.intra.42.fr/slots"><span class='iconf-calendar'></span>
  91. Manage slots
  92. </a></li>
  93. <li>
  94. <a href="https://profile.intra.42.fr/users/mazimi"><span class='iconf-user'></span>
  95. View my profile
  96. </a></li>
  97. <li>
  98. <a href="https://profile.intra.42.fr/languages">Settings
  99. </a></li>
  100. <li class='visible-xs'>
  101. <a rel="nofollow" data-method="delete" href="https://signin.intra.42.fr/users/sign_out"><span class='iconf-power-off'></span>
  102. Logout
  103. </a></li>
  104. </ul>
  105. </span>
  106. <!-- frshp notifications -->
  107. <!-- = link_to("#{Rails.application.config.module_url['profile']}/friends", :class => "user-action labelable") do -->
  108. <!-- %span.icon-user -->
  109. <!-- %span.labeled= current_user.invitations.count -->
  110. <div class='user-actions'>
  111. <a class="user-action labelable" rel="nofollow" data-method="delete" href="https://signin.intra.42.fr/users/sign_out"><span class='icon-power-off unlabeled'></span>
  112. </a></div>
  113. </div>
  114. </div>
  115. <div class='page'>
  116. <div class='left-sidebar-fix with-main-menu'></div>
  117. <div class='page-sidebar left-main-container page-sidebar-fixed-left under-main-navbar'><ul class='main-left-navbar'>
  118. <li>
  119. <a class="inactive" href="https://profile.intra.42.fr"><span class='icon-user-2'></span>
  120. <span class='visible-overlay'>
  121. Profile
  122. </span>
  123. </a></li>
  124. <li>
  125. <a class="active" href="https://projects.intra.42.fr"><span class='icon-network-2-1'></span>
  126. <span class='visible-overlay'>
  127. Projets
  128. </span>
  129. </a></li>
  130. <li>
  131. <a class="inactive" href="https://elearning.intra.42.fr"><span class='icon-movie-play-1'></span>
  132. <span class='visible-overlay'>
  133. E-learning
  134. </span>
  135. </a></li>
  136. <li>
  137. <a class="inactive" href="https://forum.intra.42.fr"><span class='icon-bubble-conversation-5'></span>
  138. <span class='visible-overlay'>
  139. Forum
  140. </span>
  141. </a></li>
  142. <li>
  143. <a class="inactive" href="http://companies.intra.42.fr"><span class='icon-briefcase'></span>
  144. <span class='visible-overlay'>
  145. Companies
  146. </span>
  147. </a></li>
  148. <li>
  149. <a class="inactive" href="https://meta.intra.42.fr"><span class='icon-compass-2'></span>
  150. <span class='visible-overlay'>
  151. Meta
  152. </span>
  153. </a></li>
  154. <li>
  155. <a class="inactive" href="https://shop.intra.42.fr"><span class='icon-shopping-1'></span>
  156. <span class='visible-overlay'>
  157. Shop
  158. </span>
  159. </a></li>
  160. </ul><div class='app-sidebar-left'>
  161. <div class='marked-title inverse'>Go to</div>
  162. <div class='projects-menu-list'>
  163. <a class="project-item sidebar-item" href="/"><span class='icon-briefcase project-status-icon'></span>
  164. My projects
  165. </a><a class="project-item sidebar-item" href="/projects/graph"><span class='iconf-location project-status-icon'></span>
  166. All projects
  167. </a><a class="project-item sidebar-item" href="/projects/list"><span class='icon-list-1 project-status-icon'></span>
  168. List projects
  169. </a></div>
  170. <div class='marked-title inverse'>Your projects</div>
  171. <div class='projects-menu-list'>
  172. <a class="project-item sidebar-item" href="/projects/21sh">21sh
  173. </a><a class="project-item sidebar-item" href="/projects/camagru">Camagru
  174. </a><a class="project-item sidebar-item" href="/projects/expert-system">Expert System
  175. </a><a class="project-item sidebar-item" href="/projects/fract-ol">Fract'ol
  176. </a><a class="project-item sidebar-item" href="/projects/lem_in">Lem_in
  177. </a></div>
  178. </div></div>
  179. <div class='page-content' data-turbolinks-scaffold>
  180. <div class='row'>
  181. <div class='main-top-menu'>
  182. </div>
  183. <div class='container-item'>
  184. <h1 class='main-title primary'>
  185. Scale for project
  186. <a href="/projects/21sh">21sh</a>
  187. <div class='marked-title'>You should correct 1 student in this team</div>
  188. <!-- -------- La liste des personnes du groupe ------- -->
  189. <div class='team-users-list'>
  190. <div class='team-user-item'>
  191. <div class='square-s bg-image-item rounded' data-placement='bottom' data-toggle='tooltip' style='background-image: url(https://cdn.intra.42.fr/users/small_vde-la-s.jpg)' title='vde-la-s'></div>
  192. <div class='team-user-item-actions'>
  193. <div class='team-user-role rounded bprima'></div>
  194. <span class='iconf-star-1 leader-user' data-placement='bottom' data-toggle='tooltip' title='Team leader'></span>
  195. </div>
  196. </div>
  197. </div>
  198. <h4 class='marked-title'>Git repository</h4>
  199. <div class='container-inner-item project-repo'>
  200. <div class='input-group'>
  201. <input class='repo-url form-control' disabled='' type='text' value='vogsphere@vogsphere.42.fr:intra/2016/activities/21sh/vde-la-s'>
  202. <span class='copy input-group-addon' data-clipboard-text='vogsphere@vogsphere.42.fr:intra/2016/activities/21sh/vde-la-s'>
  203. <span class='icon-paste'></span>
  204. </span>
  205. </div>
  206. </div>
  207. </h1>
  208. <div class='scale-introduction dancer from-down' id='introduction-661'>
  209. <h3>Introduction</h3>
  210. <p>
  211. <br/>Nous vous demandons pour le bon déroulement de cette évaluation de <br/>respecter les règles suivantes : <br/> <br/>- Restez courtois, polis, respectueux et constructifs en toutes <br/> situations lors de cet échange. Le lien de confiance entre la <br/> communauté 42 et vous en dépend. <br/> <br/>- Mettez en évidence auprès de la personne (ou du groupe) notée les <br/> dysfonctionnements éventuels du travail rendu, et prenez le temps <br/> d'en discuter et d'en débattre. <br/> <br/>- Acceptez qu'il puisse y avoir parfois des différences <br/> d’interprétation sur les demandes du sujet ou l’étendue des <br/> fonctionnalités. Restez ouvert d'esprit face à la vision de <br/> l'autre (a-t-il ou elle raison ou tort ?), et notez le plus <br/> honnêtement possible. La pédagogie de 42 n'a de sens que si <br/> la peer-évaluation est faite sérieusement. <br/>
  212. </p>
  213. </div>
  214. <div class='scale-guidelines dancer from-down' id='guidelines-661'>
  215. <h3>Guidelines</h3>
  216. <p>
  217. <br/>- Vous ne devez évaluer que ce qui se trouve sur le depôt GiT de rendu <br/> de l'étudiant(e) ou du groupe. <br/> <br/>- Prenez soin de vérifier que le depôt GiT est bien celui <br/> correspondant a l'étudiant(e) ou au groupe, et au projet. <br/> <br/>- Verifiez méticuleusement qu'aucun alias malicieux n'a été utilisé <br/> pour vous induire en erreur et vous faire évaluer autre chose que <br/> le contenu du dépot officiel. <br/> <br/>- Tout script sensé faciliter l'évaluation fourni par l'un des deux <br/> partis doit être rigoureusement vérifié par l'autre parti pour <br/> éviter des mauvaises surprises. <br/> <br/>- Si l'étudiant(e) correcteur/correctrice n'a pas encore fait ce <br/> projet, il est obligatoire pour cet(te) etudiant(e) de lire le <br/> sujet en entier avant de commencer cette soutenance. <br/> <br/>- Utilisez les flags disponibles sur ce barème pour signaler un <br/> rendu vide, non fonctionnel, une faute de norme, un cas de triche, <br/> etc. Dans ce cas, l'évaluation est terminée et la note finale est <br/> 0 (ou -42 dans le cas special de la triche). Toutefois, hors cas <br/> de triche, vous etes encouragés a continuer déchanger autour du <br/> travail éffectué (ou non éffectué justement) pour identifier les <br/> problemes ayant entrainé cette situation et les éviter pour le <br/> prochain rendu. <br/>
  218. </p>
  219. </div>
  220. </div>
  221. <div class='container-item dancer from-down' id='attachments-661'>
  222. <h2>Attachments</h2>
  223. <div class='project-attachments-list'>
  224. </div>
  225. <div class='project-attachments-list'>
  226. <div class='project-attachment-item'>
  227. <h4 class='attachment-name'>
  228. <span class='icon-file'></span>
  229. <a target="_blank" href="https://cdn.intra.42.fr/pdf/pdf/468/21sh.fr.pdf">Subject</a>
  230. </h4>
  231. </div>
  232. </div>
  233. </div>
  234. <form novalidate="novalidate" class="simple_form form-horizontal edit_scale_team" id="edit_scale_team_584190" action="/projects/21sh/project_sessions/415/evaluations/480/scales/661/scale_teams/584190" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="patch" /><input type="hidden" name="authenticity_token" value="QmgUrg3DIQScDvN8ZXDVU/dacQrzVkW/e0KvjA+u5GX8Swd7jpQfgC5x5fsggXr+sOZ7TTekHfRLD5AdisdWxA==" /><div class='container-item scale-section-answers'>
  235. <h2 class='main-title primary'>Sections</h2>
  236. <div class='on-grey'>
  237. <section class='scale-section-item dancer from-down' id='section-2414'>
  238. <h3 class='main-title'>Partie obligatoire</h3>
  239. <p>
  240. Rappel : si a un moment ou un autre, le programme ne réagit pas
  241. correctement (bus error, segfault, etc..), la soutenance est
  242. terminée et la note est 0. Pensez à utiliser les flags
  243. correspondants. Cette consigne est active d'un bout à l'autre de
  244. la soutenance.
  245. </p>
  246. <h4 class='scale-question-name'>Fichier auteur</h4>
  247. <p class='scale-section-guidelines'>
  248. <br/>Vérifiez que le fichier auteur est bien présent à la racine <br/>du dépot et formaté tel que demandé dans le sujet. Dans le cas <br/>contraire, la soutenance est terminée et la note est 0. <br/>
  249. </p>
  250. <div class='scale-question-answers'>
  251. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][0][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  252. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7204" name="[scale_team][answers_attributes][0][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  253. <div class='btn-group block'>
  254. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][0][value]" id="radio_[scale_team][answers_attributes][0]_true" type="radio" value="1"></input>
  255. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][0]_true'>
  256. <span class='icon-check'></span>
  257. Yes
  258. </label>
  259. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][0][value]" id="radio_[scale_team][answers_attributes][0]_false" type="radio" value="0" checked="checked"></input>
  260. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][0]_false'>
  261. <span class='icon-times'></span>
  262. No
  263. </label>
  264. </div>
  265. </div>
  266. <h4 class='scale-question-name'>Fuites mémoire</h4>
  267. <p class='scale-section-guidelines'>
  268. <br/>Pendant toute la durée de la soutenance, gardez un oeil sur la <br/>quantité de mémoire utilisée par le 21sh (à l'aide de top <br/>par exemple). Cette quantité doit rester à peu près fixe <br/>commande après commande. Dans le cas contraire il y a au moins <br/>une fuite mémoire, la note du projet est 0. <br/>
  269. </p>
  270. <div class='scale-question-answers'>
  271. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][1][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  272. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7205" name="[scale_team][answers_attributes][1][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  273. <div class='btn-group block'>
  274. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][1][value]" id="radio_[scale_team][answers_attributes][1]_true" type="radio" value="1"></input>
  275. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][1]_true'>
  276. <span class='icon-check'></span>
  277. Yes
  278. </label>
  279. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][1][value]" id="radio_[scale_team][answers_attributes][1]_false" type="radio" value="0" checked="checked"></input>
  280. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][1]_false'>
  281. <span class='icon-times'></span>
  282. No
  283. </label>
  284. </div>
  285. </div>
  286. <h4 class='scale-question-name'>Fork et execve</h4>
  287. <p class='scale-section-guidelines'>
  288. <br/>Fork et execve sont au coeur de la base d'un shell minimaliste, <br/>tel que le 21sh. Si vous constatez que ces deux fonctions ne <br/>sont jamais appelées dans le code source du programme, c'est <br/>qu'il y a un problème de compréhension du sujet. La soutenance <br/>est terminé et la note est 0. En respectant la liste des <br/>fonctions autorisées, il n'y a pas d'autre solution. <br/> <br/>Effectuez les 4 tests suivants. Si l'un au moins de ces tests <br/>échoue, la soutenance est terminée et la note est 0. <br/> <br/> - Lancez le 21sh, puis lancez la commande "$> foo". La <br/> commande doit échouer avec un message d'erreur adapté et <br/> rendre le prompt. <br/> <br/> - Lancez la commande "$> /bin/ls". Le binaire ls doit <br/> s'exécuter correctement, puis le prompt doit réapparaitre. <br/> <br/> - Lancez la commande "$> /bin/ls -laF". Le binaire doit <br/> s'exécuter correctement avec les options -l, -a et -F, puis <br/> le prompt doit réapparaitre, <br/> <br/> - Lancez la commande "$> /bin/ls -l -a -F". Le binaire doit <br/> s'exécuter correctement avec les options -l, -a et -F, puis <br/> le prompt doit réapparaitre, <br/>
  289. </p>
  290. <div class='scale-question-answers'>
  291. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][2][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  292. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7206" name="[scale_team][answers_attributes][2][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  293. <div class='btn-group block'>
  294. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][2][value]" id="radio_[scale_team][answers_attributes][2]_true" type="radio" value="1"></input>
  295. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][2]_true'>
  296. <span class='icon-check'></span>
  297. Yes
  298. </label>
  299. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][2][value]" id="radio_[scale_team][answers_attributes][2]_false" type="radio" value="0" checked="checked"></input>
  300. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][2]_false'>
  301. <span class='icon-times'></span>
  302. No
  303. </label>
  304. </div>
  305. </div>
  306. <h4 class='scale-question-name'>Les builtins</h4>
  307. <p class='scale-section-guidelines'>
  308. <br/>Nous allons évaluer dans cette section l'implémentation des <br/>builtins exit, echo et cd. Même prehistorique, un shell doit <br/>proposer certaines fonctionnalites. Effectuez les 6 tests <br/>suivants. Si l'un au moins de ces tests échoue, Dans le cas <br/>contraire, la soutenance est terminée et la note est 0. <br/> <br/> - Lancez le minishell, puis lancez la commande "$> exit". Le <br/> programme doit se terminer proprement et rendre la main au <br/> shell parent. Relancez le 21sh. <br/> <br/> - Lancez une commande telle que "$> echo It works". <br/> Le message doit s'afficher correctement. <br/> <br/> - Lancez une commande telle que "$> cd /absolute/path/of/your/choice", <br/> puis lancez la commande "$> /bin/pwd". La commande /bin/pwd <br/> doit confirmer que le dossier courant a bien été changé. <br/> <br/> - Lancez une commande telle que "$> cd relative/path/of/your/choice", <br/> puis lancez la commande "$> /bin/pwd". La commande /bin/pwd <br/> doit confirmer que le dossier courant a bien été changé. <br/> <br/> - Lancez la commande "$> cd", puis lancez la commande <br/> "$> /bin/pwd". La commande /bin/pwd doit confirmer que le <br/> dossier courant est bien le home de l'utilisateur. <br/> <br/> - Lancez la commande "$> cd -", puis lancez la commande <br/> "$> /bin/pwd". La commande /bin/pwd doit confirmer que le <br/> dossier courant est bien le dossier <br/> relative/path/of/your/choice précédent. <br/>
  309. </p>
  310. <div class='scale-question-answers'>
  311. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][3][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  312. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7207" name="[scale_team][answers_attributes][3][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  313. <div class='btn-group block'>
  314. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][3][value]" id="radio_[scale_team][answers_attributes][3]_true" type="radio" value="1"></input>
  315. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][3]_true'>
  316. <span class='icon-check'></span>
  317. Yes
  318. </label>
  319. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][3][value]" id="radio_[scale_team][answers_attributes][3]_false" type="radio" value="0" checked="checked"></input>
  320. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][3]_false'>
  321. <span class='icon-times'></span>
  322. No
  323. </label>
  324. </div>
  325. </div>
  326. <h4 class='scale-question-name'>Gestion de l environnement</h4>
  327. <p class='scale-section-guidelines'>
  328. <br/>Nous allons évaluer dans cette section l'implémentation des <br/>builtins env, setenv et unsetenv. Effectuez les 6 tests <br/>suivants. Si l'un au moins de ces tests échoue, Dans le cas <br/>contraire, la soutenance est terminée et la note est 0. <br/> <br/> - Lancez la commande "$> env". Les variables d'environnement <br/> doivent s'afficher sous la forme clef=valeur. <br/> <br/> - Lancez une commande telle que "$> setenv FOO bar" ou <br/> "$> setenv FOO=bar" selon la syntaxe choisie pour <br/> setenv. Lancez ensuite la commande "$> env". L'environnement <br/> doit afficher une variable FOO avec pour valeur bar. <br/> <br/> - Lancez la commande "$> /usr/bin/env". Le minishell doit <br/> transmettre le bon environnement aux binaires qu'il <br/> lance. Le binaire /usr/bin/env doit donc afficher <br/> l'environnement incluant une variable FOO avec pour valeur <br/> bar en s'exécutant. <br/> <br/> - Lancez la commande "$> unsetenv FOO". Lancez ensuite la <br/> commande "$> env". L'environnement ne doit plus afficher une <br/> variable FOO avec pour valeur bar. <br/> <br/> - Lancez à nouveau la commande "$> unsetenv FOO". Lancez <br/> ensuite à nouveau la commande "$> env". L'environnement ne <br/> doit pas avoir été modifé. <br/> <br/> - Lancez à nouveau la commande "$> /usr/bin/env". Le binaire <br/> /usr/bin/env doit ne doit plus afficher l'environnement <br/> incluant une variable FOO avec pour valeur bar en <br/> s'exécutant. <br/>
  329. </p>
  330. <div class='scale-question-answers'>
  331. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][4][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  332. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7208" name="[scale_team][answers_attributes][4][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  333. <div class='btn-group block'>
  334. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][4][value]" id="radio_[scale_team][answers_attributes][4]_true" type="radio" value="1"></input>
  335. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][4]_true'>
  336. <span class='icon-check'></span>
  337. Yes
  338. </label>
  339. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][4][value]" id="radio_[scale_team][answers_attributes][4]_false" type="radio" value="0" checked="checked"></input>
  340. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][4]_false'>
  341. <span class='icon-times'></span>
  342. No
  343. </label>
  344. </div>
  345. </div>
  346. <h4 class='scale-question-name'>Gestion du PATH</h4>
  347. <p class='scale-section-guidelines'>
  348. <br/>Nous allons évaluer dans cette section la gestion de la variable <br/>d'environnement PATH par votre shell. Effectuez les 6 tests <br/>suivants. Si l'un au moins de ces tests échoue, Dans le cas <br/>contraire, la soutenance est terminée et la note est 0. <br/> <br/> - Lancez la commande "$> unsetenv PATH", puis la commande <br/> "$> setenv PATH "/bin:/usr/bin"" ou "$> setenv <br/> "PATH=/bin:/usr/bin"" selon la syntaxe choisie. Lancez <br/> ensuite la commande "$> ls". Le binaire /bin/ls doit <br/> s'exécuter correctement. <br/> <br/> - Lancez la commande "$> emacs". Le binaire /usr/bin/emacs <br/> doit s'exécuter correctement. <br/> <br/> - Lancez la commande "$> unsetenv PATH", puis lancez la <br/> commande "$> ls". L'exécution doit échouer. <br/> <br/> - Lancez à présent la commande "$> emacs". L'exécution doit <br/> échouer également. <br/> <br/> - Lancez la commande "$> /bin/ls". Le binaire /bin/ls doit <br/> s'exécuter correctement. <br/> <br/> - Lancez la commande "$> /usr/bin/emacs". Le binaire <br/> /usr/bin/emacs doit s'exécuter correctement. <br/>
  349. </p>
  350. <div class='scale-question-answers'>
  351. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][5][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  352. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7209" name="[scale_team][answers_attributes][5][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  353. <div class='btn-group block'>
  354. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][5][value]" id="radio_[scale_team][answers_attributes][5]_true" type="radio" value="1"></input>
  355. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][5]_true'>
  356. <span class='icon-check'></span>
  357. Yes
  358. </label>
  359. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][5][value]" id="radio_[scale_team][answers_attributes][5]_false" type="radio" value="0" checked="checked"></input>
  360. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][5]_false'>
  361. <span class='icon-times'></span>
  362. No
  363. </label>
  364. </div>
  365. </div>
  366. <h4 class='scale-question-name'>Gestion de la ligne de commande</h4>
  367. <p class='scale-section-guidelines'>
  368. <br/>Nous allons évaluer dans cette section la gestion de la ligne de <br/>commande. Effectuez les 6 tests suivants. Si l'un au moins de <br/>ces tests échoue, Dans le cas contraire, la soutenance est <br/>terminée et la note est 0. <br/> <br/>- Lancez une commande vide "$>". Le shell ne doit rien faire et <br/> réafficher le prompt. <br/> <br/>- Lancez une commande composée uniquement d'un seul espace "$> ". <br/> Le shell ne doit rien faire et réafficher le prompt. <br/> <br/>- Lancez une commande composée uniquement d'espaces et de <br/> tabulations. Le shell ne doit rien faire et réafficher le prompt. <br/> <br/>- Lancez une commande avec plusieurs espaces et tabulations <br/> avant le nom du binaire, entre chaque argument passé au <br/> binaire, et après le dernier argument. Ces espaces et <br/> tabulations inutiles ne doivent pas perturber l'exécution de <br/> la commande. <br/>
  369. </p>
  370. <div class='scale-question-answers'>
  371. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][6][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  372. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7210" name="[scale_team][answers_attributes][6][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  373. <div class='btn-group block'>
  374. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][6][value]" id="radio_[scale_team][answers_attributes][6]_true" type="radio" value="1"></input>
  375. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][6]_true'>
  376. <span class='icon-check'></span>
  377. Yes
  378. </label>
  379. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][6][value]" id="radio_[scale_team][answers_attributes][6]_false" type="radio" value="0" checked="checked"></input>
  380. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][6]_false'>
  381. <span class='icon-times'></span>
  382. No
  383. </label>
  384. </div>
  385. </div>
  386. <h4 class='scale-question-name'>Signal</h4>
  387. <p class='scale-section-guidelines'>
  388. <br/>Nous allons évaluer dans cette section la gestion des signaux, <br/>et en particulier de ctrl-c. Effectuez les 3 tests suivants. Si <br/>l'un au moins de ces tests échoue, cette section du barème est <br/>échouée et aucun point n'est gagné, passez à la suivante. <br/> <br/> - Au lieu de taper une commande à l'invite du minishell, <br/> appuyez sur ctrl-c. Le minishell doit réafficher le prompt. <br/> <br/> - Tapez une commande quelconque et au lieu de la valider avec <br/> la touche entrée, appuyez sur ctrl-c. Le minishell doit <br/> réafficher le prompt sans réafficher la commande incomplète. <br/> <br/> - Lancez la commande "$>cat", puis pendant que cat attend de <br/> lire sur l'entrée standard, appuyez sur ctrl-c. Le minishell <br/> doit tuer le processus de cat, puis réafficher le prompt. <br/>
  389. </p>
  390. <div class='scale-question-answers'>
  391. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][7][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  392. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7211" name="[scale_team][answers_attributes][7][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  393. <div class='btn-group block'>
  394. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][7][value]" id="radio_[scale_team][answers_attributes][7]_true" type="radio" value="1"></input>
  395. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][7]_true'>
  396. <span class='icon-check'></span>
  397. Yes
  398. </label>
  399. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][7][value]" id="radio_[scale_team][answers_attributes][7]_false" type="radio" value="0" checked="checked"></input>
  400. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][7]_false'>
  401. <span class='icon-times'></span>
  402. No
  403. </label>
  404. </div>
  405. </div>
  406. <h4 class='scale-question-name'>Pipes</h4>
  407. <p class='scale-section-guidelines'>
  408. <br/>Nous allons évaluer dans cette section la gestion des <br/>pipes. Effectuez les 3 tests suivants. Si l'un au moins de ces <br/>tests échoue, cette section du barème est échouée et aucun point <br/>n'est gagné, passez à la suivante. <br/> <br/> - Lancez la commande "$> ls | cat -e". Le résulat de cette <br/> commande doit être le contenu du dossier dont chaque ligne <br/> se termine par le caractère '$'. <br/> <br/> - Lancez la commande "$> ls | sort | cat -e". Le résulat de <br/> cette commande doit être le contenu du dossier, trié, dont <br/> chaque ligne se termine par le caractère '$'. <br/> <br/> - Lancez la commande "$> base64 /dev/urandom | head -c 1000 | <br/> grep 42 | wc -l | sed -e 's/1/Yes/g' -e 's/0/No/g'". La <br/> commande doit afficher "Yes" si la chaine "42" a été <br/> détéctée dans les caractères randoms, ou "No" sinon. <br/>
  409. </p>
  410. <div class='scale-question-answers'>
  411. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][8][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  412. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7212" name="[scale_team][answers_attributes][8][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  413. <div class='btn-group block'>
  414. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][8][value]" id="radio_[scale_team][answers_attributes][8]_true" type="radio" value="1"></input>
  415. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][8]_true'>
  416. <span class='icon-check'></span>
  417. Yes
  418. </label>
  419. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][8][value]" id="radio_[scale_team][answers_attributes][8]_false" type="radio" value="0" checked="checked"></input>
  420. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][8]_false'>
  421. <span class='icon-times'></span>
  422. No
  423. </label>
  424. </div>
  425. </div>
  426. <h4 class='scale-question-name'>Redirections</h4>
  427. <p class='scale-section-guidelines'>
  428. <br/>Nous allons évaluer dans cette section la gestion des <br/>redirections. Effectuez les 5 tests suivants. Si l'un au moins <br/>de ces tests échoue, cette section du barème est échouée et <br/>aucun point n'est gagné, passez à la suivante. <br/> <br/> - Lancez la commande "$> echo "Testing redirections," > /tmp/test.txt" <br/> et vérifiez que le fichier /tmp/test.txt contient bien la <br/> chaine "Testing redirections". <br/> <br/> - Lancez la commande "$> echo "with multiple lines" >> /tmp/test.txt" <br/> et vérifiez que le fichier /tmp/test.txt contient bien les <br/> chaines "Testing redirections," et "with multiple lines" sur <br/> deux lignes. <br/> <br/> - Lancez la commande "$> wc -c < /tmp/test.txt" et vérifiez <br/> que la valeur affichée est bien 42. <br/> <br/> - Lancez la commande "$> cat -e << EOF", puis entrez le texte <br/> suivant sans les triples guillemets mais en respectant les <br/> sauts de lignes : <br/> """ <br/> Roses are red <br/> Violets are blue <br/> All my base are belong to you <br/> And so are you <br/> """ <br/> Appuyez ensuite sur ctrl+d pour terminer votre entrée. <br/> La sortie de la commande doit être exactement : <br/> Roses are red <br/> Violets are blue <br/> All my base are belong to you <br/> And so are you <br/> <br/> - Lancez la commande "$> cat -e << EOF >> /tmp/test.txt" puis <br/> entrez à nouveau le poème du test précédent. Vérifiez que le <br/> fichier /tmp/test.txt contient bien 6 lignes : <br/> Testing redirections, <br/> with multiple lines <br/> Roses are red <br/> Violets are blue <br/> All my base are belong to you <br/> And so are you <br/>
  429. </p>
  430. <div class='scale-question-answers'>
  431. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][9][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  432. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7213" name="[scale_team][answers_attributes][9][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  433. <div class='btn-group block'>
  434. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][9][value]" id="radio_[scale_team][answers_attributes][9]_true" type="radio" value="1"></input>
  435. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][9]_true'>
  436. <span class='icon-check'></span>
  437. Yes
  438. </label>
  439. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][9][value]" id="radio_[scale_team][answers_attributes][9]_false" type="radio" value="0" checked="checked"></input>
  440. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][9]_false'>
  441. <span class='icon-times'></span>
  442. No
  443. </label>
  444. </div>
  445. </div>
  446. <h4 class='scale-question-name'>Plusieurs commandes de suite</h4>
  447. <p class='scale-section-guidelines'>
  448. <br/>Nous allons évaluer dans cette section la gestion de plusieurs <br/>commandes d'affilé avec le séparateur ';'. Effectuez le test <br/>suivant. Si l'un au moins de ces tests échoue, cette section du <br/>barème est échouée et aucun point n'est gagné, passez à la <br/>suivante. <br/> <br/> - Lancez la commande "$> ls -1; touch newfile; ls -1". Les deux ls <br/> doivent être exécutés et la seule différence entre les deux <br/> doit être le fichier "newfile". <br/>
  449. </p>
  450. <div class='scale-question-answers'>
  451. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][10][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  452. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7214" name="[scale_team][answers_attributes][10][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  453. <div class='btn-group block'>
  454. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][10][value]" id="radio_[scale_team][answers_attributes][10]_true" type="radio" value="1"></input>
  455. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][10]_true'>
  456. <span class='icon-check'></span>
  457. Yes
  458. </label>
  459. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][10][value]" id="radio_[scale_team][answers_attributes][10]_false" type="radio" value="0" checked="checked"></input>
  460. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][10]_false'>
  461. <span class='icon-times'></span>
  462. No
  463. </label>
  464. </div>
  465. </div>
  466. <h4 class='scale-question-name'>Un peu de tout</h4>
  467. <p class='scale-section-guidelines'>
  468. <br/>Nous allons évaluer dans cette section l'utilisation de pipes, <br/>de redirections et de ';' tous ensembles. Effectuez les 2 tests <br/>suivants. Si l'un au moins de ces tests échoue, cette section du <br/>barème est échouée et aucun point n'est gagné, passez à la <br/>suivante. <br/> <br/> - Lancez la commande "$> mkdir test ; cd test ; ls -a ; ls | cat | wc -c > fifi ; cat fifi" <br/> La sortie doit être : <br/> . .. <br/> 5 <br/> <br/> - Lancez la commande "$> cd /tmp; sort << EOF | cat -e > sorted_poem ; sed -e 's/Roses/Turnips/' < sorted_poem > better_poem; cd -; echo "I prefer turnips anyway" >> /tmp/better_poem; cat /tmp/better_poem" <br/> et entrez le poème suivant à l'invite du heredoc (sans les triple guillemets) : <br/> """ <br/> Roses are red <br/> Violets are blue <br/> All my base are belong to you <br/> I love you <br/> """ <br/> La sortie doit être (toujours sans les triples guillemets) : <br/> """ <br/> All my bases are belong to you$ <br/> I love you$ <br/> Turnips are red$ <br/> Violets are blue$ <br/> I prefer turnips anyway <br/> """ <br/>
  469. </p>
  470. <div class='scale-question-answers'>
  471. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][11][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  472. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7215" name="[scale_team][answers_attributes][11][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  473. <div class='btn-group block'>
  474. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][11][value]" id="radio_[scale_team][answers_attributes][11]_true" type="radio" value="1"></input>
  475. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][11]_true'>
  476. <span class='icon-check'></span>
  477. Yes
  478. </label>
  479. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][11][value]" id="radio_[scale_team][answers_attributes][11]_false" type="radio" value="0" checked="checked"></input>
  480. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][11]_false'>
  481. <span class='icon-times'></span>
  482. No
  483. </label>
  484. </div>
  485. </div>
  486. <h4 class='scale-question-name'>Aggrégation des descripteurs de fichiers</h4>
  487. <p class='scale-section-guidelines'>
  488. <br/>Nous allons évaluer dans cette section l'aggrégation des <br/>descripteurs de fichiers. Effectuez les 3 tests suivants. Si <br/>l'un au moins de ces tests échoue, cette section du barème est <br/>échouée et aucun point n'est gagné, passez à la suivante. <br/> <br/> - Lancez la commande "$> rm nosuchfile 2>&-" en vous assurant <br/> au préalable qu'il n'existe pas de fichier nommé <br/> 'nosuchfile' dans le répertoire courant. Le message d'erreur <br/> attendu ne doit pas s'afficher. <br/> <br/> - Lancez la commande "$> rm nosuchfile 2>&1 | cat -e" en vous <br/> assurant au préalable qu'il n'existe pas de fichier nommé <br/> 'nosuchfile' dans le répertoire courant. La sortie doit être : <br/> "rm: nosuchfile: No such file or directory$" <br/> <br/> - Lancez la commande "echo "No dollar character" 1>&2 | cat -e". <br/> La sortie doit être "No dollar character". <br/>
  489. </p>
  490. <div class='scale-question-answers'>
  491. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][12][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  492. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7216" name="[scale_team][answers_attributes][12][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  493. <div class='btn-group block'>
  494. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][12][value]" id="radio_[scale_team][answers_attributes][12]_true" type="radio" value="1"></input>
  495. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][12]_true'>
  496. <span class='icon-check'></span>
  497. Yes
  498. </label>
  499. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][12][value]" id="radio_[scale_team][answers_attributes][12]_false" type="radio" value="0" checked="checked"></input>
  500. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][12]_false'>
  501. <span class='icon-times'></span>
  502. No
  503. </label>
  504. </div>
  505. </div>
  506. <h4 class='scale-question-name'>Edition de ligne simple</h4>
  507. <p class='scale-section-guidelines'>
  508. <br/>Nous allons évaluer dans cette section l'édition de ligne <br/>simple. Effectuez les 3 tests suivants. Si l'un au moins de ces <br/>tests échoue, cette section du barème est échouée et aucun point <br/>n'est gagné, passez à la suivante. <br/> <br/> - Il doit être possible de déplacer le curseur vers la gauche <br/> et vers la droite droite dans la ligne courante avec les <br/> touches flèche gauche et flèche droite. <br/> <br/> - Il doit être possible d'éditer la ligne courante à l'endroit <br/> où se trouve le curseur. <br/> <br/> - Il doit être possible de sauter vers le début et la fin de <br/> ligne avec les touches home et end. <br/> <br/> - Il doit être possible de naviguer dans l'historique avec <br/> les touches flèches haut et bas. <br/>
  509. </p>
  510. <div class='scale-question-answers'>
  511. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][13][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  512. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7217" name="[scale_team][answers_attributes][13][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  513. <div class='btn-group block'>
  514. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][13][value]" id="radio_[scale_team][answers_attributes][13]_true" type="radio" value="1"></input>
  515. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][13]_true'>
  516. <span class='icon-check'></span>
  517. Yes
  518. </label>
  519. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][13][value]" id="radio_[scale_team][answers_attributes][13]_false" type="radio" value="0" checked="checked"></input>
  520. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][13]_false'>
  521. <span class='icon-times'></span>
  522. No
  523. </label>
  524. </div>
  525. </div>
  526. <h4 class='scale-question-name'>Edition de ligne avancée</h4>
  527. <p class='scale-section-guidelines'>
  528. <br/>Nous allons évaluer dans cette section l'édition de ligne <br/>avancée. Effectuez les 3 tests suivants. L'évaluation est <br/>incrémentale, échouer un de ces tests n'empêche pas de réussir <br/>les autres. <br/> <br/> - Il doit être possible de se déplacer d'un mot vers la <br/> gauche ou vers la droite dans la ligne courante avec la <br/> touche ctrl + la touche flèche gauche ou droite. (1 point) <br/> <br/> - Il doit être possible de Copier/coller de tout ou partie de <br/> la ligne avec un raccourci clavier. (2 points) <br/> <br/> - Il doit être possible d'écrire ou éditer une commande sur <br/> plusieurs lignes en même temps. (2 points) <br/>
  529. </p>
  530. <div class='scale-question-answers'>
  531. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][14][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  532. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7218" name="[scale_team][answers_attributes][14][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  533. <div class='marked-title text-center'>Rate it from 0 (failed) through 5 (excellent)</div>
  534. <input autocomplete='off' class='star-range' data-star-range='' max='5' name='[scale_team][answers_attributes][14][value]' step='1' type='range' value='0'>
  535. </div>
  536. <h4 class='scale-question-name'>ctrl+D et ctrl+C</h4>
  537. <p class='scale-section-guidelines'>
  538. <br/>Nous allons évaluer dans cette section la gestion de ctrl+D et <br/>de ctrl+C. Effectuez les 3 tests suivants. Si l'un au moins de <br/>ces tests échoue, cette section du barème est échouée et aucun <br/>point n'est gagné, passez à la suivante. <br/> <br/> - Faites un ctrl+D lorsque la ligne de commande est vide. Le <br/> shell doit quitter proprement. <br/> <br/> - Faites un ctrl+D lorsque la ligne de commande n'est pas <br/> vide. Il ne doit rien se passer. <br/> <br/> - Lancez la commande "$> cat", tapez quelques caractères puis <br/> appuyez sur ctrl+D deux fois. Le premier appui doit afficher <br/> les caractères tapés, le second doit rendre le prompt. <br/> <br/> - Appuyez sur ctrl+C quand la ligne de commande est vide et <br/> quand la ligne de commande contient des caractères. Dans les <br/> deux cas, le shell doit rendre le prompt. <br/> <br/> - Lancez la commande "$> cat" puis appuyez sur ctrl+C. Le <br/> shell doit tuer le processus de cat et rendre le prompt. <br/>
  539. </p>
  540. <div class='scale-question-answers'>
  541. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][15][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  542. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7219" name="[scale_team][answers_attributes][15][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  543. <div class='btn-group block'>
  544. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][15][value]" id="radio_[scale_team][answers_attributes][15]_true" type="radio" value="1"></input>
  545. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][15]_true'>
  546. <span class='icon-check'></span>
  547. Yes
  548. </label>
  549. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][15][value]" id="radio_[scale_team][answers_attributes][15]_false" type="radio" value="0" checked="checked"></input>
  550. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][15]_false'>
  551. <span class='icon-times'></span>
  552. No
  553. </label>
  554. </div>
  555. </div>
  556. <h4 class='scale-question-name'>Gestion des parenthèses</h4>
  557. <p class='scale-section-guidelines'>
  558. <br/>Nous allons évaluer dans cette section la bonne gestion des <br/>commandes parenthèsées. Effectuez le test suivant. Si ce test <br/>échoue, cette section du barème est échouée et aucun point n'est <br/>gagné, passez à la suivante. <br/> <br/> - Entrez la commande '$> echo "', puis appuyez sur entrée. Le <br/> shell doit revenir à la ligne et attendre la fin de la <br/> commande. Tapez quelques lignes supplémentaires, puis fermez <br/> les guillemets et appuyez sur entrée. Le shell doit <br/> récupérer la commande et la traiter correctement. Par <br/> exemple : <br/> """ <br/> $> echo " <br/> *>Roses are red <br/> *>Violets are blue <br/> *>All my base are belong to you <br/> *>I love you <br/> *>" <br/> <br/> Roses are red <br/> Violets are blue <br/> All my base are belong to you <br/> I love you <br/> <br/> $> <br/> """ <br/>
  559. </p>
  560. <div class='scale-question-answers'>
  561. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][16][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  562. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7220" name="[scale_team][answers_attributes][16][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  563. <div class='btn-group block'>
  564. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][16][value]" id="radio_[scale_team][answers_attributes][16]_true" type="radio" value="1"></input>
  565. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][16]_true'>
  566. <span class='icon-check'></span>
  567. Yes
  568. </label>
  569. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][16][value]" id="radio_[scale_team][answers_attributes][16]_false" type="radio" value="0" checked="checked"></input>
  570. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][16]_false'>
  571. <span class='icon-times'></span>
  572. No
  573. </label>
  574. </div>
  575. </div>
  576. </section>
  577. <section class='scale-section-item dancer from-down' id='section-2415'>
  578. <h3 class='main-title'>Bonus</h3>
  579. <p>
  580. Rappel : si a un moment ou un autre, le programme ne réagit pas
  581. correctement (bus error, segfault, etc..), la soutenance est
  582. terminée et la note est 0. Pensez à utiliser les flags
  583. correspondants. Cette consigne est active d'un bout à l'autre de
  584. la soutenance.
  585. Les bonus ne doivent être évalués que si et seulement si la partie
  586. obligatoire est PARFAITE. Par PARFAITE, on entend bien évidemment
  587. qu'elle est entièrement réalisée, qu'il n'est pas possible de
  588. mettre son comportement en défaut, même en cas d'erreur, aussi
  589. vicieuse soit-elle, de mauvaise utilisation, etc. Concrètement,
  590. cela signifie que si la partie obligatoire n'a pas obtenu TOUS les
  591. points pendant cette soutenance, les bonus doivent être
  592. intégralement IGNORÉS.
  593. </p>
  594. <h4 class='scale-question-name'>Recherche dans l'historique</h4>
  595. <p class='scale-section-guidelines'>
  596. <br/>Peut-on faire une recherche dans l'historique avec ctrl+R <br/>
  597. </p>
  598. <div class='scale-question-answers'>
  599. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][17][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  600. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7221" name="[scale_team][answers_attributes][17][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  601. <div class='btn-group block'>
  602. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][17][value]" id="radio_[scale_team][answers_attributes][17]_true" type="radio" value="1"></input>
  603. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][17]_true'>
  604. <span class='icon-check'></span>
  605. Yes
  606. </label>
  607. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][17][value]" id="radio_[scale_team][answers_attributes][17]_false" type="radio" value="0" checked="checked"></input>
  608. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][17]_false'>
  609. <span class='icon-times'></span>
  610. No
  611. </label>
  612. </div>
  613. </div>
  614. <h4 class='scale-question-name'>Complétion</h4>
  615. <p class='scale-section-guidelines'>
  616. <br/>La complétion fonctionne-t-elle ? <br/>
  617. </p>
  618. <div class='scale-question-answers'>
  619. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][18][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  620. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7222" name="[scale_team][answers_attributes][18][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  621. <div class='btn-group block'>
  622. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][18][value]" id="radio_[scale_team][answers_attributes][18]_true" type="radio" value="1"></input>
  623. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][18]_true'>
  624. <span class='icon-check'></span>
  625. Yes
  626. </label>
  627. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][18][value]" id="radio_[scale_team][answers_attributes][18]_false" type="radio" value="0" checked="checked"></input>
  628. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][18]_false'>
  629. <span class='icon-times'></span>
  630. No
  631. </label>
  632. </div>
  633. </div>
  634. <h4 class='scale-question-name'>Table de hash</h4>
  635. <p class='scale-section-guidelines'>
  636. <br/>Verifiez dans le code si la résolu des binaires dans le path <br/>utilise une table de hash. <br/>
  637. </p>
  638. <div class='scale-question-answers'>
  639. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][19][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  640. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7223" name="[scale_team][answers_attributes][19][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  641. <div class='btn-group block'>
  642. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][19][value]" id="radio_[scale_team][answers_attributes][19]_true" type="radio" value="1"></input>
  643. <label class='btn btn-success checkbox-label light-bg' for='radio_[scale_team][answers_attributes][19]_true'>
  644. <span class='icon-check'></span>
  645. Yes
  646. </label>
  647. <input autocomplete="off" class="checkbox-input" name="[scale_team][answers_attributes][19][value]" id="radio_[scale_team][answers_attributes][19]_false" type="radio" value="0" checked="checked"></input>
  648. <label class='btn btn-danger checkbox-label light-bg' for='radio_[scale_team][answers_attributes][19]_false'>
  649. <span class='icon-times'></span>
  650. No
  651. </label>
  652. </div>
  653. </div>
  654. <h4 class='scale-question-name'>Autres features</h4>
  655. <p class='scale-section-guidelines'>
  656. <br/>D'autres bonus ? Vous pouvez en comptabiliser jusqu'à cinq. <br/>
  657. </p>
  658. <div class='scale-question-answers'>
  659. <div class="form-group hidden scale_team_answer_id"><div class="col-sm-10"><input class="form-control hidden" name="[scale_team][answers_attributes][20][id]" type="hidden" id="scale_team_answer_id" /></div></div>
  660. <div class="form-group hidden scale_team_answer_question_id"><div class="col-sm-10"><input class="form-control hidden" value="7224" name="[scale_team][answers_attributes][20][question_id]" type="hidden" id="scale_team_answer_question_id" /></div></div>
  661. <div class='marked-title text-center'>Rate it from 0 (failed) through 5 (excellent)</div>
  662. <input autocomplete='off' class='star-range' data-star-range='' max='5' name='[scale_team][answers_attributes][20][value]' step='1' type='range' value='0'>
  663. </div>
  664. </section>
  665. </div>
  666. </div>
  667. <div class='container-item dancer from-down' id='ratings-661'>
  668. <h2>Ratings</h2>
  669. <p class='marked-title'>Don’t forget to check the flag corresponding to the defense</p>
  670. <div class='btn-group block' data-radio-item='flag-small'>
  671. <label class='btn btn-default btn-success label_flag_ok on-active positive' for='scale_team_flag_id_1' name='scale_team[flag_id]'>
  672. <span class='iconf-check-4'></span>
  673. Ok
  674. </label>
  675. <label class='btn btn-danger btn-default label_flag_empty_work negative on-active' for='scale_team_flag_id_2' name='scale_team[flag_id]'>
  676. <span class='iconf-file-1'></span>
  677. Empty work
  678. </label>
  679. <label class='btn btn-danger btn-default label_flag_incomplete_work negative on-active' for='scale_team_flag_id_3' name='scale_team[flag_id]'>
  680. <span class='iconf-file-attention'></span>
  681. Incomplete work
  682. </label>
  683. <label class='btn btn-danger btn-default label_flag_no_author_file negative on-active' for='scale_team_flag_id_4' name='scale_team[flag_id]'>
  684. <span class='iconf-bubble-attention-4'></span>
  685. No author file
  686. </label>
  687. <label class='btn btn-danger btn-default label_flag_invalid_compilation negative on-active' for='scale_team_flag_id_5' name='scale_team[flag_id]'>
  688. <span class='iconf-skull-2'></span>
  689. Invalid compilation
  690. </label>
  691. <label class='btn btn-danger btn-default label_flag_norme negative on-active' for='scale_team_flag_id_6' name='scale_team[flag_id]'>
  692. <span class='iconf-receipt-1'></span>
  693. Norme
  694. </label>
  695. <label class='btn btn-danger btn-default label_flag_cheat negative on-active' for='scale_team_flag_id_7' name='scale_team[flag_id]'>
  696. <span class='iconf-layers'></span>
  697. Cheat
  698. </label>
  699. <label class='btn btn-danger btn-default label_flag_crash negative on-active' for='scale_team_flag_id_8' name='scale_team[flag_id]'>
  700. <span class='iconf-bomb'></span>
  701. Crash
  702. </label>
  703. </div>
  704. </div>
  705. <div class='container-item'>
  706. <h2 class='main-title primary'>Conclusion</h2>
  707. <div class='on-grey'>
  708. <div class='scale-final-evaluation hidden'>
  709. <div class="form-group radio_buttons optional scale_team_flag"><label class="col-sm-2 control-label radio_buttons optional">Flag</label><div class="col-sm-10"><input type="hidden" name="scale_team[flag_id]" value="" /><span class="radio"><label for="scale_team_flag_id_1"><input class="radio_buttons optional" type="radio" value="1" checked="checked" name="scale_team[flag_id]" id="scale_team_flag_id_1" />Ok</label></span><span class="radio"><label for="scale_team_flag_id_2"><input class="radio_buttons optional" type="radio" value="2" name="scale_team[flag_id]" id="scale_team_flag_id_2" />Empty work</label></span><span class="radio"><label for="scale_team_flag_id_3"><input class="radio_buttons optional" type="radio" value="3" name="scale_team[flag_id]" id="scale_team_flag_id_3" />Incomplete work</label></span><span class="radio"><label for="scale_team_flag_id_4"><input class="radio_buttons optional" type="radio" value="4" name="scale_team[flag_id]" id="scale_team_flag_id_4" />No author file</label></span><span class="radio"><label for="scale_team_flag_id_5"><input class="radio_buttons optional" type="radio" value="5" name="scale_team[flag_id]" id="scale_team_flag_id_5" />Invalid compilation</label></span><span class="radio"><label for="scale_team_flag_id_6"><input class="radio_buttons optional" type="radio" value="6" name="scale_team[flag_id]" id="scale_team_flag_id_6" />Norme</label></span><span class="radio"><label for="scale_team_flag_id_7"><input class="radio_buttons optional" type="radio" value="7" name="scale_team[flag_id]" id="scale_team_flag_id_7" />Cheat</label></span><span class="radio"><label for="scale_team_flag_id_8"><input class="radio_buttons optional" type="radio" value="8" name="scale_team[flag_id]" id="scale_team_flag_id_8" />Crash</label></span></div></div>
  710. </div>
  711. <div class='scale-final-comments' id='comments-661'>
  712. <p class='marked-title'>Leave a comment on this correction</p>
  713. <div class="form-group text required scale_team_comment"><label class="col-sm-2 control-label text required" for="scale_team_comment"><abbr title="required">*</abbr> Comment</label><div class="col-sm-10"><textarea class="form-control text required" required="required" aria-required="true" name="scale_team[comment]" id="scale_team_comment">
  714. </textarea></div></div>
  715. </div>
  716. <input id="token" name="token" class="hidden" type="hidden" />
  717. <div class='scale-final-submit'>
  718. <input class='btn btn-primary btn-block' data-disable-with='Finishing correction...' name='commit' type='submit' value='Finish correction'>
  719. </div>
  720. </div>
  721. </div>
  722. </form>
  723. </div>
  724. </div>
  725. </div>
  726. <div aria-hidden='true' aria-labelledby='smartModalLabel' class='modal fade' id='smartModal' role='dialog' tabindex='-1'>
  727. <div class='modal-dialog'>
  728. <div class='modal-content'>
  729. <div class='modal-header'>
  730. <button aria-hidden='true' class='close' data-dismiss='modal' type='button'>
  731. x
  732. </button>
  733. <h3 id='smartModalLabel'>
  734. </h3>
  735. </div>
  736. <div class='modal-body'>
  737. <h4 class='note-title'></h4>
  738. </div>
  739. <div class='modal-footer'>
  740. <button aria-hidden='true' class='btn' data-dismiss='modal'>Cancel</button>
  741. <button class='send btn btn-primary'>Send</button>
  742. </div>
  743. </div>
  744. </div>
  745. </div>
  746. <div aria-hidden='true' aria-labelledby='flashModalLabel' class='modal fade' id='flashModal' role='dialog' tabindex='-1'>
  747. <div class='modal-dialog modal-lg'>
  748. <div class='modal-content'>
  749. <div class='modal-header'>
  750. <button aria-hidden='true' class='close' data-dismiss='modal' type='button'>
  751. x
  752. </button>
  753. <h3 id='flashModalLabel'></h3>
  754. </div>
  755. <div class='modal-body'>
  756. <h4 class='note-title'>Flash modal content (raw)</h4>
  757. </div>
  758. <div class='modal-footer'>
  759. <button aria-hidden='true' class='btn btn-block btn-default' data-dismiss='modal'>Close</button>
  760. </div>
  761. </div>
  762. </div>
  763. </div>
  764. <script>
  765. function google_analytics() {
  766. (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  767. (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  768. m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  769. })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  770. ga('create', "UA-55986469-3", 'auto');
  771. ga('send', 'pageview');
  772. }
  773. if (!document.documentElement.hasAttribute("data-turbolinks-preview"))
  774. google_analytics();
  775. </script>
  776. <div data-cache="true" class="hide"></div>
  777. </body>
  778. <script>
  779. var jsClasses = ["new_message", "topic-reply"];
  780. jsClasses.forEach(function(className) {
  781. Array.prototype.forEach.call(document.getElementsByClassName(className), function (e) {
  782. e.classList.add("js-hidden");
  783. });
  784. });
  785. </script>
  786. </head>
  787. </html>