(not so) bad assessments
Project description
badass
: (not so) bad assessments
badass
helps to produce automated assessments of programming
projects. It is likely to produce bad assessments of good projects,
but good assessments of bad projects. Indeed, it can test:
- if the project compiles
- the return values of functions on defined test cases
- static properties on the code
- traces of the execution
But it cannot test:
- code readability and clarity
- algorithm relevance and quality
- all such aspects one would like to test on good projects
So, bad projects are likely to fail on the first group of tests, while good project will pass and thus remain to be assessed manually.
The main goal of badass
is thus to quickly produce superficial
assessments for a large number of students, allowing to focus on the
best projects for a manual analysis.
Security
badass
will execute all foreign code inside a sandbox provided
by firejail
so you won't harm your
system executing malicious or badly programmed projects.
Current state and future
This is a very early version that is (mostly) limited to C projects. In the future versions, we may have:
- online submission of projects and report to the students on a given set of tests
- a library of standard tests on source code and
strace
logs - support for other languages
Installation
To start with, just pip install not-so-badass
. Then, try to run
badass -h
, if you get the help message then, everything should be
OK.
Troubleshooting libclang
issues
You may have problems with libclang
that does not load properly.
badass
tries hard to find the dynamic library but it may fail. In
such a case, you should set environment variable BADASS_LIBCLANG
to
the full path of the libclang
dynamic library. For instance, on my
Linux, it's /usr/lib/x86_64-linux-gnu/libclang-9.so.1
. So I set
BADASS_LIBCLANG=/usr/lib/x86_64-linux-gnu/libclang-9.so.1
in my
.bashrc
and everything is fine.
On MacOS, it has been reported that you need to install the XCode
Command Line Tools, and you'll find the dynamic library in a path
like /Library/Developer/CommandLineTools/usr/lib/libclang.dylib
.
Setting BADASS_LIBCLANG
may be required if you need to run badass
within badass run
(eg, in prepare.sh
or build.sh
scripts)
because in this case, badass
is locked by firejail
and cannot find
libclang
by itself.
I'm using MacOS, it does not work
Send me a bug report, perhaps we can interact and have this problem solved. I don't own a Mac so I can't test.
I'm using Windows, it does not work
Indeed. It will never. (Try with the Windows Subsystem for Linux.)
Licence
badass
(C) 2020, Franck Pommereau franck.pommereau@univ-evry.fr
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file not-so-badass-0.7.tar.gz
.
File metadata
- Download URL: not-so-badass-0.7.tar.gz
- Upload date:
- Size: 193.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.0.1.post20191122 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4526c5ac67cabea6a2b1a97025bc34821509d1dc40209cf50ba27959f0a7671e |
|
MD5 | 292169c929a42092dc97b80f8484f73c |
|
BLAKE2b-256 | 13514d3983d2f27a6955469e546c207fe92337b3a1d1b1d540d9e294d0b8f763 |