diff options
| author | Lennart Poettering <lennart@poettering.net> | 2016-02-22 18:36:54 +0100 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2016-02-22 23:23:06 +0100 | 
| commit | 26fbedd7dc3481c34c6a955d9d2328dde8d9c15a (patch) | |
| tree | 6b504a61c1ec32ed356e872f95bb32d904841c1e /src | |
| parent | 0c0fea07b8da1ef31521658e5764267218da2f13 (diff) | |
tests: add personality tests
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/test-process-util.c | 26 | 
1 files changed, 26 insertions, 0 deletions
| diff --git a/src/test/test-process-util.c b/src/test/test-process-util.c index 48be5a3a87..4616314200 100644 --- a/src/test/test-process-util.c +++ b/src/test/test-process-util.c @@ -18,12 +18,14 @@    along with systemd; If not, see <http://www.gnu.org/licenses/>.  ***/ +#include <sys/personality.h>  #include <sys/stat.h>  #include <sys/types.h>  #include <sys/wait.h>  #include <unistd.h>  #include "alloc-util.h" +#include "architecture.h"  #include "log.h"  #include "macro.h"  #include "process-util.h" @@ -128,6 +130,29 @@ static void test_pid_is_alive(void) {          assert_se(!pid_is_alive(-1));  } +static void test_personality(void) { + +        assert_se(personality_to_string(PER_LINUX)); +        assert_se(!personality_to_string(PERSONALITY_INVALID)); + +        assert_se(streq(personality_to_string(PER_LINUX), architecture_to_string(native_architecture()))); + +        assert_se(personality_from_string(personality_to_string(PER_LINUX)) == PER_LINUX); +        assert_se(personality_from_string(architecture_to_string(native_architecture())) == PER_LINUX); + +#ifdef __x86_64__ +        assert_se(streq_ptr(personality_to_string(PER_LINUX), "x86-64")); +        assert_se(streq_ptr(personality_to_string(PER_LINUX32), "x86")); + +        assert_se(personality_from_string("x86-64") == PER_LINUX); +        assert_se(personality_from_string("x86") == PER_LINUX32); +        assert_se(personality_from_string("ia64") == PERSONALITY_INVALID); +        assert_se(personality_from_string(NULL) == PERSONALITY_INVALID); + +        assert_se(personality_from_string(personality_to_string(PER_LINUX32)) == PER_LINUX32); +#endif +} +  int main(int argc, char *argv[]) {          log_parse_environment();          log_open(); @@ -135,6 +160,7 @@ int main(int argc, char *argv[]) {          test_get_process_comm();          test_pid_is_unwaited();          test_pid_is_alive(); +        test_personality();          return 0;  } | 
