aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.6/libjava/testsuite/libjava.lang/utilTest.java
diff options
context:
space:
mode:
authorJing Yu <jingyu@google.com>2011-12-19 16:56:54 -0800
committerJing Yu <jingyu@google.com>2011-12-19 16:56:54 -0800
commit40d7cd0fd78fe2004e2a53c4618c148339b02733 (patch)
tree5874557a6c86a1f564a03e5f28b266e31bc3759c /gcc-4.6/libjava/testsuite/libjava.lang/utilTest.java
parentfe2afdf3f3701489c05d2a7509752d6f0c7616f7 (diff)
downloadtoolchain_gcc-40d7cd0fd78fe2004e2a53c4618c148339b02733.tar.gz
toolchain_gcc-40d7cd0fd78fe2004e2a53c4618c148339b02733.tar.bz2
toolchain_gcc-40d7cd0fd78fe2004e2a53c4618c148339b02733.zip
Add gcc-4.6. Synced to @180989
Change-Id: Ie3676586e1d8e3c8cd9f07d022f450d05fa08439 svn://gcc.gnu.org/svn/gcc/branches/google/gcc-4_6-mobile
Diffstat (limited to 'gcc-4.6/libjava/testsuite/libjava.lang/utilTest.java')
-rw-r--r--gcc-4.6/libjava/testsuite/libjava.lang/utilTest.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/gcc-4.6/libjava/testsuite/libjava.lang/utilTest.java b/gcc-4.6/libjava/testsuite/libjava.lang/utilTest.java
new file mode 100644
index 000000000..221bbf827
--- /dev/null
+++ b/gcc-4.6/libjava/testsuite/libjava.lang/utilTest.java
@@ -0,0 +1,58 @@
+class utilTest {
+
+ public static void main(String[] argv) throws Throwable {
+ byte[] b = new byte[] {
+ 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xab,
+ (byte) 0xcd, (byte) 0xef
+ };
+ String s = "0123456789ABCDEF";
+ System.out.println(toString(b));
+ System.out.println(s);
+ System.out.println(toString(toBytesFromString(s)));
+ }
+
+ // The following comes from the GNU Crypto project gnu.crypto.util.Util
+
+ private static final char[] HEX_DIGITS = {
+ '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
+ };
+
+ public static byte[] toBytesFromString(String s) {
+ int limit = s.length();
+ byte[] result = new byte[((limit + 1) / 2)];
+ int i = 0, j = 0;
+ if ((limit % 2) == 1) {
+ result[j++] = (byte) fromDigit(s.charAt(i++));
+ }
+ while (i < limit) {
+ result[j++] =
+ (byte)((fromDigit(s.charAt(i++)) << 4) | fromDigit(s.charAt(i++)));
+ }
+ return result;
+ }
+
+ public static int fromDigit(char c) {
+ if (c >= '0' && c <= '9') {
+ return c - '0';
+ } else if (c >= 'A' && c <= 'F') {
+ return c - 'A' + 10;
+ } else if (c >= 'a' && c <= 'f') {
+ return c - 'a' + 10;
+ } else
+ throw new IllegalArgumentException("Invalid hexadecimal digit: " + c);
+ }
+
+ public static String toString(byte[] ba) {
+ return toString(ba, 0, ba.length);
+ }
+
+ public static final String toString(byte[] ba, int offset, int length) {
+ char[] buf = new char[length * 2];
+ for (int i = 0, j = 0, k; i < length; ) {
+ k = ba[offset + i++];
+ buf[j++] = HEX_DIGITS[(k >>> 4) & 0x0F];
+ buf[j++] = HEX_DIGITS[ k & 0x0F];
+ }
+ return new String(buf);
+ }
+}