1 /*- 2 * BSD LICENSE 3 * 4 * Copyright(c) 2010-2014 Intel Corporation. All rights reserved. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * * Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * * Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in 15 * the documentation and/or other materials provided with the 16 * distribution. 17 * * Neither the name of Intel Corporation nor the names of its 18 * contributors may be used to endorse or promote products derived 19 * from this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 27 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34 #include <stdio.h> 35 #include <stdint.h> 36 #include <unistd.h> 37 #include <limits.h> 38 #include <string.h> 39 40 #include "test.h" 41 42 #include <rte_power.h> 43 44 static int 45 test_power(void) 46 { 47 int ret = -1; 48 enum power_management_env env; 49 50 /* Test setting an invalid environment */ 51 ret = rte_power_set_env(PM_ENV_NOT_SET); 52 if (ret == 0) { 53 printf("Unexpectedly succeeded on setting an invalid environment\n"); 54 return -1; 55 } 56 57 /* Test that the environment has not been set */ 58 env = rte_power_get_env(); 59 if (env != PM_ENV_NOT_SET) { 60 printf("Unexpectedly got a valid environment configuration\n"); 61 return -1; 62 } 63 64 /* verify that function pointers are NULL */ 65 if (rte_power_freqs != NULL) { 66 printf("rte_power_freqs should be NULL, environment has not been " 67 "initialised\n"); 68 goto fail_all; 69 } 70 if (rte_power_get_freq != NULL) { 71 printf("rte_power_get_freq should be NULL, environment has not been " 72 "initialised\n"); 73 goto fail_all; 74 } 75 if (rte_power_set_freq != NULL) { 76 printf("rte_power_set_freq should be NULL, environment has not been " 77 "initialised\n"); 78 goto fail_all; 79 } 80 if (rte_power_freq_up != NULL) { 81 printf("rte_power_freq_up should be NULL, environment has not been " 82 "initialised\n"); 83 goto fail_all; 84 } 85 if (rte_power_freq_down != NULL) { 86 printf("rte_power_freq_down should be NULL, environment has not been " 87 "initialised\n"); 88 goto fail_all; 89 } 90 if (rte_power_freq_max != NULL) { 91 printf("rte_power_freq_max should be NULL, environment has not been " 92 "initialised\n"); 93 goto fail_all; 94 } 95 if (rte_power_freq_min != NULL) { 96 printf("rte_power_freq_min should be NULL, environment has not been " 97 "initialised\n"); 98 goto fail_all; 99 } 100 rte_power_unset_env(); 101 return 0; 102 fail_all: 103 rte_power_unset_env(); 104 return -1; 105 } 106 107 REGISTER_TEST_COMMAND(power_autotest, test_power); 108