#2 What's your understanding of a self-checking test bench?
#1 Consider the following
simple 2 input logic gates
If we have A OR B = ?
We can have a conditional statement that says
? = 1 when A = '1' OR B = '1' , but not when they are both '0'.
Therefore you have a comparative check based on what you know it should be vs what your uut is outputting.
You can use commands like (vhdl) assert to check and report an output to the console.
For a more robust testbench you really want to be outputting to a text file with test number and test pass/fail state.