What are letest and gendata?

letest is a program you can use to verify that you have built and installed the ICU LayoutEngine correctly. The test is not comprehensive, it just verifies that the results of laying out some Devanagari, Arabic and Thai text are as expected. Once this test has passed, you can use the ICU LayoutEngine in your application knowing that it has been correctly installed and that the basic functionality is in place.

gendata is a program that is used by the ICU team to build the source file testdata.cpp, which contains the expected results of running letest. Unless you have changed your copy of the LayoutEngine and want to validate the changes on other platforms, there's no reason for you to run this program.

(The ICU team first runs a Windows application which uses the ICU LayoutEngine to display the text that letest uses. Once it has been verified that the text is displayed correctly, gendata is run to produce testdata.cpp, and then letest is run on Windows to verify that letest still works with the new data.)
 

How do I build letest?

First, you need to build ICU, including the LayoutEngine.

On Windows, the layout project should be listed as a dependency of all, so layout will build when you build all. If it doesn't for some reason, just select the layout project in the project toolbar and build it.

On UNIX systems, you need to add the "--enable-layout=yes" option when you invoke the runConfigureICU script. When you've do that, layout should build when you do "make all install"

To build letest on Windows, just open the letest project in <icu>\source\test\letest and build it. On UNIX systems, connect to <top-build-dir>/test/letest and do "make all"
 

How do I run letest?

Before you can run letest, you'll need to get the fonts it uses. For legal reasons, we can't include them with ICU, but you can get them for free from the web. Do do this, you'll need access to a computer running Windows. Here's how to get the fonts:

Download the 1.3 version of the JDK from the IBM WebSphere preview technologies page. From this page, follow the "Download" link on the right had side. You'll need to register with them if you haven't downloaded before. Download and install the "Runtime Environment Package." You'll need three fonts from this package. If you've let the installer use it's defaults, the fonts will be in C:\Program Files\IBM\Java13\jre\lib\fonts. The files you want are "Devamt.ttf" "LucidaSansRegular.ttf" and "Thornburi.ttf" Copy these to the directory from which you'll run letest.

That's it! Now all you have to do is run letest (CTRL+F5 in Visual C++, or "./letest" in UNIX) If  everything's OK you should see something like this:

Test 0, font = Devamt.ttf... passed.
Test 1, font = Times.TTF... passed.
Test 2, font = LucidaSansRegular.ttf... passed.
Test 3, font = Thonburi.ttf... passed.