Test Procedure for a VisAD Release to the ftp Server 1. on demedici (or whatever machine you are running on), update from the CVS repository, build a source JAR file, and compile for debugging: cd java/visad cvs update cd ../edu cvs update cd ../ucar cvs update cd ../visad make jar java -version java version "1.3.0" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0) Java HotSpot(TM) Client VM (build 1.3.0, mixed mode) make debug > xxb 2. in another window, log onto sarah (or any machine running JDK 1.2), get the source JAR file you just made, and compile for debugging under JDK 1.2: ssh sarah cd java/visad make clear cd .. scp demedici:/home/billh/java/visad/visad_src-2.0.jar . jar xvf visad_src-2.0.jar cd visad java -version java version "1.2" Classic VM (build JDK-1.2-V, green threads, sunwjit) make debug > xxb 3. when 'make debug > xxb' finishes on both machines, check them for any compile errors, usually in the window where they ran but also check the 'xxb' files 4. on demedici (or whatever machine you are running on), edit and recompile visad/java3d/VisADCanvasJ3D.java to enable offscreen rendering, then edit again to disable, but do NOT recompile (i.e., the source file should have offscreen rendering disabled, and the .class file should have it enabled: cd java3d edit VisADCanvasJ3D.java so its offscreen rendering constructor looks like: VisADCanvasJ3D(DisplayRendererJ3D renderer, int w, int h) throws VisADException { /* // to enable off screen rendering (if you have Java3D version 1.2.1 // of higher installed), comment out the following six lines (the // super and throw statements) super(defaultConfig); throw new VisADException("\n\nFor off screen rendering in Java3D\n" + "please edit visad/java3d/VisADCanvasJ3D.java as follows:\n" + "remove or comment-out \"super(defaultConfig);\" and the\n" + " throw statement for this Exception,\n" + "and un-comment the body of this constructor\n"); */ // AND uncomment the rest of this constructor super(defaultConfig, true); displayRenderer = renderer; display = (DisplayImplJ3D) renderer.getDisplay(); component = null; offscreen = true; width = w; height = h; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); ImageComponent2D image2d = new ImageComponent2D(ImageComponent2D.FORMAT_RGB, image); setOffScreenBuffer(image2d); Screen3D screen = getScreen3D(); int screen_width = 1280; int screen_height = 1024; screen.setSize(screen_width, screen_height); double width_in_meters = screen_width * METER_RATIO; double height_in_meters = screen_height * METER_RATIO; screen.setPhysicalScreenWidth(width_in_meters); screen.setPhysicalScreenHeight(height_in_meters); } then compile: javac -g VisADCanvasJ3D.java then edit VisADCanvasJ3D.java again so its offscreen rendering constructor looks like (but do NOT recompile): VisADCanvasJ3D(DisplayRendererJ3D renderer, int w, int h) throws VisADException { // to enable off screen rendering (if you have Java3D version 1.2.1 // of higher installed), comment out the following six lines (the // super and throw statements) super(defaultConfig); throw new VisADException("\n\nFor off screen rendering in Java3D\n" + "please edit visad/java3d/VisADCanvasJ3D.java as follows:\n" + "remove or comment-out \"super(defaultConfig);\" and the\n" + " throw statement for this Exception,\n" + "and un-comment the body of this constructor\n"); // AND uncomment the rest of this constructor /* super(defaultConfig, true); displayRenderer = renderer; display = (DisplayImplJ3D) renderer.getDisplay(); component = null; offscreen = true; width = w; height = h; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); ImageComponent2D image2d = new ImageComponent2D(ImageComponent2D.FORMAT_RGB, image); setOffScreenBuffer(image2d); Screen3D screen = getScreen3D(); int screen_width = 1280; int screen_height = 1024; screen.setSize(screen_width, screen_height); double width_in_meters = screen_width * METER_RATIO; double height_in_meters = screen_height * METER_RATIO; screen.setPhysicalScreenWidth(width_in_meters); screen.setPhysicalScreenHeight(height_in_meters); */ } finally, test offscreen rendering: java visad.java3d.VisADCanvasJ3D a window should pop up with a square color bull's eye in a 3-D box. 5. test some computations: java visad.FlatField 6. test VerySimple: cd examples java VerySimple make sure the image animates, pans and zooms 7. test the SpreadSheet (still in the examples directory): java visad.ss.SpreadSheet in cell A1, import b2rlc.nc and verify the display is an animated spectrum edit the mappings to clear the map Time -> Animation and add the map Time -> ZAxis, then verify the display is a sequence of spectra along the ZAxis in cell B1, import images.nc and verify the display is an animated image with a missing line in the second image edit the mappings to add the map val -> ZAxis, then verify the display is an animated terrain image delete the data from cells A1 and B1 in cell A1, import copy.gif from the ../ss directory and verify the display of the copy icon in cell B1, import cut.gif from the same directory and verify the display of the cut icon in cell A2, enter the formula 'A1 - B1' and verify the display of their difference delete the data from cell B1 and verify the error message in cell A2 in cell B1, import del.gif and verify the difference display in cell A2 8. run the DisplayTest cases (still in the examples directory): note that data for these tests are available from ftp://www.ssec.wisc.edu/pub/visad/ note in many of these tests you will need to drag the widget frame off the display frame before you can see the display before running these commands, make sure rmiregistry is running on your machine java DisplayTest 0 two 3-D displays should come up; drag both points and the V-shaped line in each (note you will need to click the left button for direct manipluation in the right display), and verify the same changes in the other 3-D display; verify that coordinates are displayed in the left display but not the right java DisplayTest 1 drag the vis_radiance iso-level and verify a colored sphere; play with the color widget and verify color changes in the iso-surface java DisplayTest 2 drag the vis_radiance iso-level and verify an irregular colored sphere; play with the color widget and verify color changes in the iso-surface java DisplayTest 3 rotate the 3-D display a bit, then animate and verify that the plane takes 6 steps and the cone takes only 4 steps java DisplayTest 4 verify display of a bull's eye color image on the surface of a sphere java DisplayTest 5 verify display of a contour bull's eye on a slanted plane; enable and verify labels java DisplayTest 5 1 verify display of an unevenlyr-spaced contour bull's eye on a slanted plane, with labels java DisplayTest 6 verify display of a contour bull's eye on a slanted plane java DisplayTest 6 1 verify display of an unevenlyr-spaced contour bull's eye on a slanted plane java DisplayTest 7 verify color bull's eye opaque at top gradually increasing transparency down java DisplayTest 8 verify warped cone (cone + slanted plane) java DisplayTest 9 bill.gif verify GIF image display (may use any simple GIF file) java DisplayTest 10 bill.nc verify netCDF image display as a terrain (may use any netCDF file generated from a GIF file - easiest way is to read a GIF into the SpreadSheet and save as netCDF) java DisplayTest 11 verify bull's eye image warped in partial arc of circle java DisplayTest 12 edit red, green and blue curves in color widget, clicking Apply after each; then Undo & Apply, Grey Scale & Apply, finally Reset & Apply; verify proper colr change in display after each Apply java DisplayTest 12 1 click left mouse button in widget, then quickly drag cursor back and forth across color widget making sure to run well off left and right edges as color table size increases to 1024 and then decreases to 256 java DisplayTest 13 verify three Exception messages in display java DisplayTest 14 wait for the display to pop up with two points and a V-shaped line, rotate the view to the left or right, then in another window run: java DisplayTest 15 now there should be displays for both the '14' and '15' commands; in each display drag both points and the V-shaped line and verify that they move in both displays; then shut down both the '14' and '15' commands java DisplayTest 16 verify an opaque color bull's eye image java DisplayTest 17 verify a color bull's eye image with constant transparency java DisplayTest 18 rotate display a bit left or right; verify slanted planes in all 6 animation steps, but cones in only the first four animation steps java DisplayTest 19 rotate display a bit left or right; drag value slider and verify that slanted planes and cones change in display java DisplayTest 20 edit red, green, blue and alpha curves in color-alpha widget and verify display (especially transparency); verify that Grey Scale and Reset work right java DisplayTest 21 drag in both ends of select range widget, then drag whole range (just click in middle of range); verify range selections in display java DisplayTest 22 verify correct coloring of image (white along bottom edge, hue rainbow along top) java DisplayTest 23 verify correct coloring of image (roughly green top left, blue top right, yellow bottom left, red bottom right) java DisplayTest 24 verify correct coloring of image (color bull's eye from brown through red to white inside) java DisplayTest 25 verify correct coloring of image (color bull's eye from cyan through purple to yellow inside) java DisplayTest 26 rotate display up, verify flipping and shrinking cone and verify scale labels java DisplayTest 27 when yellow cross hair cursors appear in display, drag them with right mouse button and verify that cone rescales java DisplayTest 28 verify arror vector field (point right along bottom, up in the middle, and up & right on top and along left and right edges) java DisplayTest 29 verify irregular cone java DisplayTest 30 verify stack of images and axis scale with time labels java DisplayTest 31 verify scatter diagram, rotate up and verify points lie on two V-shaped planes java DisplayTest 32 ngc1316o.fits verify astronomy image display (data available from ftp://www.ssec.wisc.edu/pub/visad/ngc1316o.fits) java DisplayTest 33 edit red, green and blue curves in color widget and verify color changes in display; then verify Grey Scale and verify that Reset restores original linear color curves java DisplayTest 34 in left display, drag both points and part of V-shaped line until they disappear outside box; then in right display drag them back into box and verify they reappear in left display java DisplayTest 35 in left, 3-D display, drag both points and part of V-shaped line until they disappear outside box; then in right, 2-D display drag them back into box and verify they reappear in left display java DisplayTest 36 verify color bull's eye warped in arc of circle java DisplayTest 37 verify contour warped bull's eye; verify fill; verify labels java DisplayTest 38 verify bull's eye contours java DisplayTest 39 edit reg, green and blue curves in color widget and verify color changes in display java DisplayTest 40 redraw spiral V-shaped curve in left display and verify change in right display, then redraw in right display and verify change in left display java DisplayTest 41 verify alignment of contours and colors in left and right displays java DisplayTest 42 verify alignment of contours and colors in left and right displays; pan and zoom left display and verify correct changes to axis scales java DisplayTest 43 verify that right display is the x-derivative of the left display java DisplayTest 44 verify text sloping slightly down to the right java DisplayTest 45 verify text java DisplayTest 45 1 verify text on sphere java DisplayTest 46 verify shapes: 3 solid triangles in open squares, 2 squares with diagonal crosses, in various colors java DisplayTest 47 verify shapes: point, cube, X, cube, 1.2 and cube, small to large, in various colors java DisplayTest 48 verify green cone java DisplayTest 49 verify green V-shaped line with breaks java DisplayTest 50 move top frame, then pan bottom display and verify that top frame tracks once per second java DisplayTest 51 move top frame, then rotate bottom display and verify that top frame tracks once per second java DisplayTest 52 verify color bull's eye java DisplayTest 53 click center mouse button in display and verify changes to box, cursor and backgroup colors, and box off java DisplayTest 54 click center mouse button in display and verify changes to box, cursor and backgroup colors java DisplayTest 55 wait for the display to pop up with two points and a V-shaped line, then in another window run (substitute the IP name of your machine for "demedici"): java DisplayTest 56 demedici now there should be displays for both the '55' and '56' commands; in each display drag both points and the V-shaped line and verify that they move in both displays; then shut down both the '55' and '56' commands java DisplayTest 57 verify 3-D box and cone with non-square aspect rotating java DisplayTest 58 verify box and image with non-square aspect rotating java DisplayTest 59 drag contour level and verify irregular spherical isosurface java DisplayTest 60 verify irregular contour bull's eye java DisplayTest 61 edit red, green, blue and alpha curves in color widget and verify volume color changes; drag xr, yr and zr ranges and verify clipping of volume java DisplayTest 61 1 edit red, green, blue and alpha curves in color widget and verify volume color changes; drag xr, yr and zr ranges and verify clipping of volume java DisplayTest 62 drag contour level and verify wire frame surface java DisplayTest 63 wait for the display to pop up with a cone, then in another window run (substitute the IP name of your machine for "demedici"): java DisplayTest 64 demedici click left mouse button and drag in new window, and verify cone rotates in both displays; click and drag center mouse button and verify cursor coordinates in both displays java DisplayTest 63 -2d wait for the display to pop up with a V-shaped line, then in another window run (substitute the IP name of your machine for "demedici"): java DisplayTest 64 demedici click left mouse button and drag in new window, and verify cone rotates in both displays; click and drag center mouse button and verify cursor coordinates in both displays java DisplayTest 65 verify widget panel; play with widgets and verify correct display java DisplayTest 66 play with widgets and verify correct displays java DisplayTest 67 1 verify blue and red sinusoidal curves in left and right displays java DisplayTest 67 2 verify blue and red sinusoidal surfaces in left and right displays java DisplayTest 67 3 verify identical point volume patterns in left and right displays java DisplayTest 68 wait for the display to pop up with a conical contour bull's eye, then in another window run: cd ../browser appletviewer viewer_applet.html when the applet pops up, click "Connect"; click and drag the left mouse button in the browser display and verify that it and the original display rotate; modify the "interval" value in the browser widgets and verify the change in contour interval in both displays java DisplayTest 69 verify text using a filled font, and verify special characters in top row java DisplayTest 69 1 verify text using a filled font on a sphere java DisplayTest 70 verify 5 numbers along diagonal java DisplayTest 70 1 verify the 5 numbers along a diagonal around a sphere java DisplayTest 71 bill.gif aj.gif use any two GIF images of roughly the same size; verify the display starts with the first, and switches to the second whenever it is moving java DisplayTest 72 verify streamlines on a cone 9. make visad_src-2.0.jar, visad.jar and visad_examples.jar: cd .. make jar make classes make examplesjar ls -l *.jar ../*.jar date make sure the dates/times on visad_src-2.0.jar, visad_examples.jar and ../visad.jar match the output of 'date', and that their lengths are reasonable (visad_examples.jar should be about 0.5 MB, the other two about 5 MB) 10. ftp the three JAR files and the DATE file to the pub/visad-2.0 directory of ftp.ssec.wisc.edu, and verify the file lengths (note you will only be able to do this if the SSEC system admins have enabled your IP address for writing to ftp.ssec.wisc.edu): ftp ftp.ssec.wisc.edu login: anonymous password: email@address cd pub/visad-2.0 ftp> put DATE ftp> bin ftp> put visad_src-2.0.jar ftp> put visad_examples.jar ftp> lcd .. ftp> put visad.jar ftp> dir *.jar ftp> quit compare the lengths of the three JAR files on ftp and on demedici; click on "LAST UPDATED" in the VisAD web page and verify it gives the current date and time 11. you're done