Secret printing in libraries and shell and silencing randcall.
This commit is contained in:
parent
a2b15b77aa
commit
036cae3982
@ -534,7 +534,7 @@ interactive(void)
|
|||||||
struct exitinfo ei;
|
struct exitinfo ei;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
printf("OS/161$ ");
|
printsf("OS/161$ ");
|
||||||
getcmd(buf, sizeof(buf));
|
getcmd(buf, sizeof(buf));
|
||||||
docommand(buf, &ei);
|
docommand(buf, &ei);
|
||||||
printstatus(&ei, 0);
|
printstatus(&ei, 0);
|
||||||
|
@ -56,6 +56,11 @@ int vprintf(const char *fmt, __va_list ap);
|
|||||||
int snprintf(char *buf, size_t len, const char *fmt, ...);
|
int snprintf(char *buf, size_t len, const char *fmt, ...);
|
||||||
int vsnprintf(char *buf, size_t len, const char *fmt, __va_list ap);
|
int vsnprintf(char *buf, size_t len, const char *fmt, __va_list ap);
|
||||||
|
|
||||||
|
/* Automated testing extensions. */
|
||||||
|
|
||||||
|
int tprintf(const char *fmt, ...);
|
||||||
|
int printsf(const char *fmt, ...);
|
||||||
|
|
||||||
/* Print the argument string and then a newline. Returns 0 or -1 on error. */
|
/* Print the argument string and then a newline. Returns 0 or -1 on error. */
|
||||||
int puts(const char *);
|
int puts(const char *);
|
||||||
|
|
||||||
|
@ -31,6 +31,8 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <kern/secret.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* printf - C standard I/O function.
|
* printf - C standard I/O function.
|
||||||
@ -76,3 +78,36 @@ vprintf(const char *fmt, va_list ap)
|
|||||||
}
|
}
|
||||||
return chars;
|
return chars;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* printf variant that is quiet during automated testing */
|
||||||
|
int
|
||||||
|
tprintf(const char *fmt, ...)
|
||||||
|
{
|
||||||
|
int chars;
|
||||||
|
va_list ap;
|
||||||
|
|
||||||
|
if (strcmp(KERNEL_SECRET, "") != 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
va_start(ap, fmt);
|
||||||
|
chars = vprintf(fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
|
||||||
|
return chars;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* printf variant that prepends the kernel secret */
|
||||||
|
int
|
||||||
|
printsf(const char *fmt, ...)
|
||||||
|
{
|
||||||
|
int chars;
|
||||||
|
va_list ap;
|
||||||
|
|
||||||
|
printf("%s: ", KERNEL_SECRET);
|
||||||
|
va_start(ap, fmt);
|
||||||
|
chars = vprintf(fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
|
||||||
|
return chars;
|
||||||
|
}
|
||||||
|
@ -67,7 +67,7 @@ awk < $1 '
|
|||||||
if (i<NF) printf ", ";
|
if (i<NF) printf ", ";
|
||||||
}
|
}
|
||||||
printf ");\n";
|
printf ");\n";
|
||||||
printf"\tprintf(\"%%-47s\", buf);\n";
|
printf"\ttprintf(\"%%-47s\", buf);\n";
|
||||||
#printf "\tfflush(stdout);\n";
|
#printf "\tfflush(stdout);\n";
|
||||||
printf "\n";
|
printf "\n";
|
||||||
|
|
||||||
@ -88,7 +88,7 @@ awk < $1 '
|
|||||||
}
|
}
|
||||||
printf ");\n";
|
printf ");\n";
|
||||||
|
|
||||||
printf "\tprintf(\" result %%d, errno %%d\\n\", result, errno);\n";
|
printf "\ttprintf(\" result %%d, errno %%d\\n\", result, errno);\n";
|
||||||
printf "\tif (dofork) {\n";
|
printf "\tif (dofork) {\n";
|
||||||
printf "\t\texit(0);\n";
|
printf "\t\texit(0);\n";
|
||||||
printf "\t}\n";
|
printf "\t}\n";
|
||||||
|
@ -157,7 +157,7 @@ main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Seed: %d Count: %d\n", seed, count);
|
tprintf("Seed: %d Count: %d\n", seed, count);
|
||||||
|
|
||||||
srandom(seed);
|
srandom(seed);
|
||||||
trycalls(an, dofork, count);
|
trycalls(an, dofork, count);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user