1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements.  See the NOTICE file distributed with
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership.
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License.  You may obtain a copy of the License at
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License.
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage org.apache.harmony.archive.tests.java.util.zip;
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass;
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargets;
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel;
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew;
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.zip.CRC32;
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(CRC32.class)
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class CRC32Test extends junit.framework.TestCase {
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.util.zip.CRC32#CRC32()
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "CRC32",
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor() {
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // test methods of java.util.zip.CRC32()
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        CRC32 crc = new CRC32();
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Constructor of CRC32 failed", 0, crc.getValue());
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.util.zip.CRC32#getValue()
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "getValue",
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_getValue() {
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // test methods of java.util.zip.crc32.getValue()
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        CRC32 crc = new CRC32();
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "getValue() should return a zero as a result of constructing a CRC32 instance",
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                0, crc.getValue());
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.reset();
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.update(Integer.MAX_VALUE);
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // System.out.print("value of crc " + crc.getValue());
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Ran JDK and discovered that the value of the CRC should be
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // 4278190080
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "update(max) failed to update the checksum to the correct value ",
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                4278190080L, crc.getValue());
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.reset();
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte byteEmpty[] = new byte[10000];
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.update(byteEmpty);
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // System.out.print("value of crc"+crc.getValue());
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Ran JDK and discovered that the value of the CRC should be
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // 1295764014
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "update(byte[]) failed to update the checksum to the correct value ",
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                1295764014L, crc.getValue());
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.reset();
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.update(1);
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // System.out.print("value of crc"+crc.getValue());
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Ran JDK and discovered that the value of the CRC should be
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // 2768625435
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // assertEquals("update(int) failed to update the checksum to the
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // correct
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // value ",2768625435L, crc.getValue());
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.reset();
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("reset failed to reset the checksum value to zero", 0, crc
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .getValue());
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.util.zip.CRC32#reset()
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "reset",
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_reset() {
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // test methods of java.util.zip.crc32.reset()
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        CRC32 crc = new CRC32();
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.update(1);
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // System.out.print("value of crc"+crc.getValue());
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Ran JDK and discovered that the value of the CRC should be
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // 2768625435
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "update(int) failed to update the checksum to the correct value ",
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                2768625435L, crc.getValue());
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.reset();
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("reset failed to reset the checksum value to zero", 0, crc
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .getValue());
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.util.zip.CRC32#update(int)
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "update",
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_updateI() {
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // test methods of java.util.zip.crc32.update(int)
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        CRC32 crc = new CRC32();
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.update(1);
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // System.out.print("value of crc"+crc.getValue());
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Ran JDK and discovered that the value of the CRC should be
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // 2768625435
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "update(1) failed to update the checksum to the correct value ",
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                2768625435L, crc.getValue());
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.reset();
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.update(Integer.MAX_VALUE);
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // System.out.print("value of crc " + crc.getValue());
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Ran JDK and discovered that the value of the CRC should be
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // 4278190080
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "update(max) failed to update the checksum to the correct value ",
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                4278190080L, crc.getValue());
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.reset();
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.update(Integer.MIN_VALUE);
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // System.out.print("value of crc " + crc.getValue());
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Ran JDK and discovered that the value of the CRC should be
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // 3523407757
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "update(min) failed to update the checksum to the correct value ",
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                3523407757L, crc.getValue());
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.util.zip.CRC32#update(byte[])
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "update",
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class}
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_update$B() {
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // test methods of java.util.zip.crc32.update(byte[])
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte byteArray[] = {1, 2};
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        CRC32 crc = new CRC32();
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.update(byteArray);
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // System.out.print("value of crc"+crc.getValue());
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Ran JDK and discovered that the value of the CRC should be
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // 3066839698
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "update(byte[]) failed to update the checksum to the correct value ",
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                3066839698L, crc.getValue());
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.reset();
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte byteEmpty[] = new byte[10000];
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.update(byteEmpty);
181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // System.out.print("value of crc"+crc.getValue());
182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Ran JDK and discovered that the value of the CRC should be
183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // 1295764014
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "update(byte[]) failed to update the checksum to the correct value ",
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                1295764014L, crc.getValue());
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.util.zip.CRC32#update(byte[], int, int)
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "update",
196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class, int.class, int.class}
197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_update$BII() {
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // test methods of java.util.zip.update(byte[],int,int)
200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] byteArray = {1, 2, 3};
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        CRC32 crc = new CRC32();
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int off = 2;// accessing the 2nd element of byteArray
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int len = 1;
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int lenError = 3;
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int offError = 4;
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        crc.update(byteArray, off, len);
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // System.out.print("value of crc"+crc.getValue());
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Ran JDK and discovered that the value of the CRC should be
209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // 1259060791
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "update(byte[],int,int) failed to update the checksum to the correct value ",
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                1259060791L, crc.getValue());
213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int r = 0;
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            crc.update(byteArray, off, lenError);
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            r = 1;
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "update(byte[],int,int) failed b/c lenError>byte[].length-off",
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                1, r);
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            crc.update(byteArray, offError, len);
225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (ArrayIndexOutOfBoundsException e) {
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            r = 2;
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "update(byte[],int,int) failed b/c offError>byte[].length", 2,
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                r);
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void setUp() {
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void tearDown() {
240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
243