mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-11 05:52:36 +02:00
util/libreboot-utils: randomisation test
to test the effectiveness of the rand function Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
/nvm
|
||||
/nvmutil
|
||||
/mkhtemp
|
||||
/lottery
|
||||
*.bin
|
||||
*.o
|
||||
*.d
|
||||
|
||||
@@ -25,6 +25,7 @@ HELLFLAGS = $(STRICT) -Weverything
|
||||
|
||||
PROG = nvmutil
|
||||
PROGMKH = mkhtemp
|
||||
PROGLOT = lottery
|
||||
|
||||
OBJS_NVMUTIL = \
|
||||
obj/nvmutil.o \
|
||||
@@ -48,11 +49,19 @@ OBJS_MKHTEMP = \
|
||||
obj/lib/mkhtemp.o \
|
||||
obj/lib/rand.o
|
||||
|
||||
OBJS_LOTTERY = \
|
||||
obj/lottery.o \
|
||||
obj/lib/file.o \
|
||||
obj/lib/string.o \
|
||||
obj/lib/num.o \
|
||||
obj/lib/mkhtemp.o \
|
||||
obj/lib/rand.o
|
||||
|
||||
# default mode
|
||||
CFLAGS_MODE = $(PORTABLE)
|
||||
CC_MODE = $(CC)
|
||||
|
||||
all: $(PROG) $(PROGMKH)
|
||||
all: $(PROG) $(PROGMKH) $(PROGLOT)
|
||||
|
||||
$(PROG): $(OBJS_NVMUTIL)
|
||||
$(CC_MODE) $(OBJS_NVMUTIL) -o $(PROG) $(LDFLAGS)
|
||||
@@ -60,9 +69,13 @@ $(PROG): $(OBJS_NVMUTIL)
|
||||
$(PROGMKH): $(OBJS_MKHTEMP)
|
||||
$(CC_MODE) $(OBJS_MKHTEMP) -o $(PROGMKH) $(LDFLAGS)
|
||||
|
||||
$(PROGLOT): $(OBJS_LOTTERY)
|
||||
$(CC_MODE) $(OBJS_LOTTERY) -o $(PROGLOT) $(LDFLAGS)
|
||||
|
||||
# ensure obj directory exists
|
||||
$(OBJS_NVMUTIL): obj
|
||||
$(OBJS_MKHTEMP): obj
|
||||
$(OBJS_LOTTERY): obj
|
||||
|
||||
obj:
|
||||
mkdir obj || true
|
||||
@@ -76,6 +89,9 @@ obj/nvmutil.o: nvmutil.c
|
||||
obj/mkhtemp.o: mkhtemp.c
|
||||
$(CC_MODE) $(CFLAGS_MODE) -c mkhtemp.c -o obj/mkhtemp.o
|
||||
|
||||
obj/lottery.o: lottery.c
|
||||
$(CC_MODE) $(CFLAGS_MODE) -c lottery.c -o obj/lottery.o
|
||||
|
||||
# library/helper objects
|
||||
|
||||
obj/lib/state.o: lib/state.c
|
||||
@@ -113,19 +129,23 @@ obj/lib/rand.o: lib/rand.c
|
||||
|
||||
# install
|
||||
|
||||
install: $(PROG) $(PROGMKH)
|
||||
install: $(PROG) $(PROGMKH) $(PROGLOT)
|
||||
$(INSTALL) -d $(DESTDIR)$(PREFIX)/bin
|
||||
$(INSTALL) $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG)
|
||||
chmod 755 $(DESTDIR)$(PREFIX)/bin/$(PROG)
|
||||
$(INSTALL) $(PROGMKH) $(DESTDIR)$(PREFIX)/bin/$(PROGMKH)
|
||||
chmod 755 $(DESTDIR)$(PREFIX)/bin/$(PROGMKH)
|
||||
$(INSTALL) $(PROGLOT) $(DESTDIR)$(PREFIX)/bin/$(PROGLOT)
|
||||
chmod 755 $(DESTDIR)$(PREFIX)/bin/$(PROGLOT)
|
||||
|
||||
uninstall:
|
||||
rm -f $(DESTDIR)$(PREFIX)/bin/$(PROG)
|
||||
rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGMKH)
|
||||
rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGLOT)
|
||||
|
||||
clean:
|
||||
rm -f $(PROG) $(PROGMKH) $(OBJS_NVMUTIL) $(OBJS_MKHTEMP)
|
||||
rm -f $(PROG) $(PROGMKH) $(OBJS_NVMUTIL) $(OBJS_MKHTEMP) \
|
||||
$(OBJS_LOTTERY)
|
||||
|
||||
distclean: clean
|
||||
|
||||
|
||||
@@ -388,6 +388,7 @@ void *mkrbuf(size_t n);
|
||||
void rset(void *buf, size_t n);
|
||||
void *mkrbuf(size_t n);
|
||||
char *mkrstr(size_t n);
|
||||
int win_lottery(void);
|
||||
|
||||
/* Helper functions for command: dump
|
||||
*/
|
||||
|
||||
@@ -100,17 +100,13 @@ win_lottery(void)
|
||||
win:
|
||||
free_if_null(&s1), free_if_null(&s2);
|
||||
|
||||
err_no_cleanup(0, ELOTTERY,
|
||||
"Congratulations! you won the errno lottery");
|
||||
|
||||
exit(1);
|
||||
return -1;
|
||||
printf("Congratulations! you won the errno lottery!\n");
|
||||
return 1;
|
||||
err:
|
||||
/* the lottery won you */
|
||||
free_if_null(&s1), free_if_null(&s2);
|
||||
err_no_cleanup(0, EFAULT, "lottery won you");
|
||||
exit(1);
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/* SPDX-License-Identifier: MIT
|
||||
* Copyright (c) 2026 Leah Rowe <leah@libreboot.org>
|
||||
*/
|
||||
|
||||
#ifdef __OpenBSD__
|
||||
#include <sys/param.h> /* pledge(2) */
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include "include/common.h"
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
#if defined(__OpenBSD__) && defined(OpenBSD)
|
||||
#if (OpenBSD) >= 509
|
||||
if (pledge("stdio", NULL) == -1)
|
||||
err_no_cleanup(0, errno, "openbsd won it");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (win_lottery()) {
|
||||
printf("You won!");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}/*
|
||||
|
||||
|
||||
( >:3 )
|
||||
/| |\
|
||||
/ \
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user