1c91437d38ae14a20046de47831eb0f9bfd329af7satok/*
2c91437d38ae14a20046de47831eb0f9bfd329af7satok * Copyright (C) 2011 The Android Open Source Project
3c91437d38ae14a20046de47831eb0f9bfd329af7satok *
4c91437d38ae14a20046de47831eb0f9bfd329af7satok * Licensed under the Apache License, Version 2.0 (the "License");
5c91437d38ae14a20046de47831eb0f9bfd329af7satok * you may not use this file except in compliance with the License.
6c91437d38ae14a20046de47831eb0f9bfd329af7satok * You may obtain a copy of the License at
7c91437d38ae14a20046de47831eb0f9bfd329af7satok *
8c91437d38ae14a20046de47831eb0f9bfd329af7satok *      http://www.apache.org/licenses/LICENSE-2.0
9c91437d38ae14a20046de47831eb0f9bfd329af7satok *
10c91437d38ae14a20046de47831eb0f9bfd329af7satok * Unless required by applicable law or agreed to in writing, software
11c91437d38ae14a20046de47831eb0f9bfd329af7satok * distributed under the License is distributed on an "AS IS" BASIS,
12c91437d38ae14a20046de47831eb0f9bfd329af7satok * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c91437d38ae14a20046de47831eb0f9bfd329af7satok * See the License for the specific language governing permissions and
14c91437d38ae14a20046de47831eb0f9bfd329af7satok * limitations under the License.
15c91437d38ae14a20046de47831eb0f9bfd329af7satok */
16c91437d38ae14a20046de47831eb0f9bfd329af7satok
17c91437d38ae14a20046de47831eb0f9bfd329af7satokpackage android.os;
18c91437d38ae14a20046de47831eb0f9bfd329af7satok
19c91437d38ae14a20046de47831eb0f9bfd329af7satokimport junit.framework.TestCase;
20c91437d38ae14a20046de47831eb0f9bfd329af7satok
21c91437d38ae14a20046de47831eb0f9bfd329af7satokimport android.os.SystemProperties;
22c91437d38ae14a20046de47831eb0f9bfd329af7satokimport android.test.suitebuilder.annotation.SmallTest;
23c91437d38ae14a20046de47831eb0f9bfd329af7satok
24c91437d38ae14a20046de47831eb0f9bfd329af7satokpublic class SystemPropertiesTest extends TestCase {
25c91437d38ae14a20046de47831eb0f9bfd329af7satok    private static final String KEY = "sys.testkey";
26656f7a729f8a01d42de610579e8cc2ba1f208076satok    private static final String PERSIST_KEY = "persist.sys.testkey";
27656f7a729f8a01d42de610579e8cc2ba1f208076satok
28656f7a729f8a01d42de610579e8cc2ba1f208076satok    @SmallTest
29656f7a729f8a01d42de610579e8cc2ba1f208076satok    public void testStressPersistPropertyConsistency() throws Exception {
30656f7a729f8a01d42de610579e8cc2ba1f208076satok        for (int i = 0; i < 100; ++i) {
31656f7a729f8a01d42de610579e8cc2ba1f208076satok            SystemProperties.set(PERSIST_KEY, Long.toString(i));
32656f7a729f8a01d42de610579e8cc2ba1f208076satok            long ret = SystemProperties.getLong(PERSIST_KEY, -1);
33656f7a729f8a01d42de610579e8cc2ba1f208076satok            assertEquals(i, ret);
34656f7a729f8a01d42de610579e8cc2ba1f208076satok        }
35656f7a729f8a01d42de610579e8cc2ba1f208076satok    }
36656f7a729f8a01d42de610579e8cc2ba1f208076satok
37c91437d38ae14a20046de47831eb0f9bfd329af7satok    @SmallTest
38656f7a729f8a01d42de610579e8cc2ba1f208076satok    public void testStressMemoryPropertyConsistency() throws Exception {
39c91437d38ae14a20046de47831eb0f9bfd329af7satok        for (int i = 0; i < 100; ++i) {
40c91437d38ae14a20046de47831eb0f9bfd329af7satok            SystemProperties.set(KEY, Long.toString(i));
41c91437d38ae14a20046de47831eb0f9bfd329af7satok            long ret = SystemProperties.getLong(KEY, -1);
42c91437d38ae14a20046de47831eb0f9bfd329af7satok            assertEquals(i, ret);
43c91437d38ae14a20046de47831eb0f9bfd329af7satok        }
44c91437d38ae14a20046de47831eb0f9bfd329af7satok    }
45c91437d38ae14a20046de47831eb0f9bfd329af7satok
46c91437d38ae14a20046de47831eb0f9bfd329af7satok    @SmallTest
47c91437d38ae14a20046de47831eb0f9bfd329af7satok    public void testProperties() throws Exception {
48c91437d38ae14a20046de47831eb0f9bfd329af7satok        String value;
49c91437d38ae14a20046de47831eb0f9bfd329af7satok
50c91437d38ae14a20046de47831eb0f9bfd329af7satok        SystemProperties.set(KEY, "");
51c91437d38ae14a20046de47831eb0f9bfd329af7satok        value = SystemProperties.get(KEY, "default");
52c91437d38ae14a20046de47831eb0f9bfd329af7satok        assertEquals("default", value);
53c91437d38ae14a20046de47831eb0f9bfd329af7satok
54c91437d38ae14a20046de47831eb0f9bfd329af7satok        SystemProperties.set(KEY, "SA");
55c91437d38ae14a20046de47831eb0f9bfd329af7satok        value = SystemProperties.get(KEY, "default");
56c91437d38ae14a20046de47831eb0f9bfd329af7satok        assertEquals("SA", value);
57c91437d38ae14a20046de47831eb0f9bfd329af7satok
58c91437d38ae14a20046de47831eb0f9bfd329af7satok        value = SystemProperties.get(KEY);
59c91437d38ae14a20046de47831eb0f9bfd329af7satok        assertEquals("SA", value);
60c91437d38ae14a20046de47831eb0f9bfd329af7satok
61c91437d38ae14a20046de47831eb0f9bfd329af7satok        SystemProperties.set(KEY, "");
62c91437d38ae14a20046de47831eb0f9bfd329af7satok        value = SystemProperties.get(KEY, "default");
63c91437d38ae14a20046de47831eb0f9bfd329af7satok        assertEquals("default", value);
64c91437d38ae14a20046de47831eb0f9bfd329af7satok
65c91437d38ae14a20046de47831eb0f9bfd329af7satok        value = SystemProperties.get(KEY);
66c91437d38ae14a20046de47831eb0f9bfd329af7satok        assertEquals("", value);
67c91437d38ae14a20046de47831eb0f9bfd329af7satok    }
68c91437d38ae14a20046de47831eb0f9bfd329af7satok}
69