~arosales/test/oprofile

« back to all changes in this revision

Viewing changes to libregex/tests/java_test.cpp

  • Committer: Antonio Rosales
  • Date: 2013-03-28 08:40:26 UTC
  • Revision ID: antonio.rosales@canonical.com-20130328084026-gpqns1mkqd7cnr05
Move files up one directory.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * @file java_test.cpp
 
3
 *
 
4
 * A simple test for java demangling. Run it through:
 
5
 * $ java_test
 
6
 *
 
7
 * @remark Copyright 2007 OProfile authors
 
8
 * @remark Read the file COPYING
 
9
 *
 
10
 * @author Philippe Elie
 
11
 */
 
12
 
 
13
#include "demangle_java_symbol.h"
 
14
 
 
15
#include "op_regex.h"
 
16
 
 
17
#include <iostream>
 
18
#include <fstream>
 
19
 
 
20
#include <cstdlib>
 
21
 
 
22
using namespace std;
 
23
 
 
24
namespace {
 
25
 
 
26
void check_result(string const & input, string const & output,
 
27
                         string const & result)
 
28
{
 
29
        if (result != output) {
 
30
                cerr << "for:\n\"" << input << "\"\n"
 
31
                     << "expect:\n\"" << output << "\"\n"
 
32
                     << "found:\n\"" << result << "\"\n";
 
33
                exit(EXIT_FAILURE);
 
34
        }
 
35
}
 
36
 
 
37
struct input_output {
 
38
        char const * mangled;
 
39
        char const * expect;
 
40
};
 
41
 
 
42
input_output mangle_tests[] = {
 
43
        { "Ltest$test_1;f2(I)V", "void test$test_1.f2(int)" },
 
44
        { "Ltest;f4()V", "void test.f4()" },
 
45
        { "Ltest;f2(II)V", "void test.f2(int, int)" },
 
46
        { "Ltest$HelloThread;run()V~1", "void test$HelloThread.run()~1" },
 
47
        { "Lsun/security/provider/SHA;implCompress([BI)V", "void sun.security.provider.SHA.implCompress(byte[], int)" },
 
48
        { "Ljava/lang/String;equals(Ljava/lang/Object;)Z", "boolean java.lang.String.equals(java.lang.Object)" },
 
49
        { "Lorg/eclipse/swt/graphics/ImageData;blit(I[BIIIIIIIIIII[BIII[BIIIIIIIIIIZZ)V", "void org.eclipse.swt.graphics.ImageData.blit(int, byte[], int, int, int, int, int, int, int, int, int, int, int, byte[], int, int, int, byte[], int, int, int, int, int, int, int, int, int, int, boolean, boolean)" },
 
50
        { 0, 0 }
 
51
};
 
52
 
 
53
} // anonymous namespace
 
54
 
 
55
int main(void)
 
56
{
 
57
        input_output const * cur;
 
58
        for (cur = mangle_tests; cur->mangled; ++cur) {
 
59
                string result = demangle_java_symbol(cur->mangled);
 
60
                check_result(cur->mangled, cur->expect, result);
 
61
        }
 
62
 
 
63
        return 0;
 
64
}
 
65