--- /dev/null
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+filename=TMPDIR+"/test_matfile.mat";
+A = rand(10,10);
+B = sprand(100,100,0.1);
+savematfile(filename,'A','B','-v6');
+clear();
+filename=TMPDIR+"/test_matfile.mat";
+fd = matfile_open(filename);
+assert_checkequal(fd, 0);
+assert_checkequal(matfile_close(fd), %t);
+assert_checktrue(isfile(filename));
+assert_checkequal(matfile_close(fd), %f);
+File already closed.
--- /dev/null
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+filename=TMPDIR+"/test_matfile.mat";
+
+A = rand(10,10);
+B = sprand(100,100,0.1);
+savematfile(filename,'A','B','-v6');
+clear();
+filename=TMPDIR+"/test_matfile.mat";
+fd = matfile_open(filename);
+assert_checkequal(fd, 0);
+assert_checkequal(matfile_close(fd), %t);
+assert_checktrue(isfile(filename));
+assert_checkequal(matfile_close(fd), %f);
--- /dev/null
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+filename=TMPDIR+"/test_matfile.mat";
+A = rand(10,10);
+B = sprand(100,100,0.1);
+C = "foo";
+D = "bar";
+savematfile(filename,'A','B','C','D','-v6');
+clear();
+filename=TMPDIR+"/test_matfile.mat";
+fd = matfile_open(filename);
+[name, classes, types]=matfile_listvar(fd);
+assert_checkequal(matfile_close(fd), %t);
+assert_checkequal(name(1), "A");
+assert_checkequal(name(2), "B");
+assert_checkequal(name(3), "C");
+assert_checkequal(name(4), "D");
+assert_checkequal(types(1), 9);
+assert_checkequal(types(2), 9);
+assert_checkequal(types(3), 2);
+assert_checkequal(types(4), 2);
+assert_checkequal(classes(1), 6);
+assert_checkequal(classes(2), 5);
+assert_checkequal(classes(3), 4);
+assert_checkequal(classes(4), 4);
--- /dev/null
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+filename=TMPDIR+"/test_matfile.mat";
+
+A = rand(10,10);
+B = sprand(100,100,0.1);
+C = "foo";
+D = "bar";
+savematfile(filename,'A','B','C','D','-v6');
+clear();
+filename=TMPDIR+"/test_matfile.mat";
+fd = matfile_open(filename);
+[name, classes, types]=matfile_listvar(fd);
+assert_checkequal(matfile_close(fd), %t);
+
+assert_checkequal(name(1), "A");
+assert_checkequal(name(2), "B");
+assert_checkequal(name(3), "C");
+assert_checkequal(name(4), "D");
+
+assert_checkequal(types(1), 9);
+assert_checkequal(types(2), 9);
+assert_checkequal(types(3), 2);
+assert_checkequal(types(4), 2);
+
+assert_checkequal(classes(1), 6);
+assert_checkequal(classes(2), 5);
+assert_checkequal(classes(3), 4);
+assert_checkequal(classes(4), 4);
--- /dev/null
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+filename=TMPDIR+"/test_matfile.mat";
+A = rand(10,10);
+B = sprand(100,100,0.1);
+savematfile(filename,'A','B','-v6');
+clear();
+filename=TMPDIR+"/test_matfile.mat";
+fd = matfile_open(filename);
+assert_checkequal(fd, 0);
+matfile_close(fd);
+assert_checktrue(isfile(filename));
--- /dev/null
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+filename=TMPDIR+"/test_matfile.mat";
+
+A = rand(10,10);
+B = sprand(100,100,0.1);
+savematfile(filename,'A','B','-v6');
+clear();
+filename=TMPDIR+"/test_matfile.mat";
+fd = matfile_open(filename);
+assert_checkequal(fd, 0);
+matfile_close(fd);
+assert_checktrue(isfile(filename));
--- /dev/null
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+filename=TMPDIR+"/test_matfile.mat";
+A = rand(10,10);
+B = sprand(100,100,0.1);
+C = "foo";
+D = "bar";
+savematfile(filename,'A','B','C','D','-v6');
+fd = matfile_open(filename);
+[Name, Value, Type] = matfile_varreadnext(fd);
+assert_checkequal(Name, "A");
+assert_checkequal(Value, A);
+assert_checkequal(Type, 6);
+[Name, Value, Type] = matfile_varreadnext(fd);
+assert_checkequal(Name, "B");
+assert_checkequal(Value, B);
+assert_checkequal(Type, 5);
+[Name, Value, Type] = matfile_varreadnext(fd);
+assert_checkequal(Name, "C");
+assert_checkequal(Value, "foo");
+assert_checkequal(Type, 4);
+[Name, Value, Type] = matfile_varreadnext(fd);
+assert_checkequal(Name, "D");
+assert_checkequal(Value, "bar");
+assert_checkequal(Type, 4);
+assert_checkequal(matfile_close(fd), %t);
--- /dev/null
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+filename=TMPDIR+"/test_matfile.mat";
+
+A = rand(10,10);
+B = sprand(100,100,0.1);
+C = "foo";
+D = "bar";
+savematfile(filename,'A','B','C','D','-v6');
+fd = matfile_open(filename);
+
+[Name, Value, Type] = matfile_varreadnext(fd);
+assert_checkequal(Name, "A");
+assert_checkequal(Value, A);
+assert_checkequal(Type, 6);
+
+[Name, Value, Type] = matfile_varreadnext(fd);
+assert_checkequal(Name, "B");
+assert_checkequal(Value, B);
+assert_checkequal(Type, 5);
+
+[Name, Value, Type] = matfile_varreadnext(fd);
+assert_checkequal(Name, "C");
+assert_checkequal(Value, "foo");
+assert_checkequal(Type, 4);
+
+[Name, Value, Type] = matfile_varreadnext(fd);
+assert_checkequal(Name, "D");
+assert_checkequal(Value, "bar");
+assert_checkequal(Type, 4);
+
+assert_checkequal(matfile_close(fd), %t);
\ No newline at end of file
--- /dev/null
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+filename=TMPDIR+"/test_matfile.mat";
+fd = matfile_open(filename,"w");
+matfile_varwrite(fd, "foo", "bar", %t);
+A=rand(10,10);
+matfile_varwrite(fd, "a", A, %t);
+matfile_close(fd);
+assert_checktrue(isfile(filename));
+fd = matfile_open(filename);
+assert_checkequal(matfile_listvar(fd),["foo";"a"]);
+matfile_close(fd);
+assert_checktrue(isfile(filename));
+loadmatfile(filename);
+assert_checkequal(foo,"bar");
+assert_checkequal(a,A);
--- /dev/null
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - S/E - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+filename=TMPDIR+"/test_matfile.mat";
+fd = matfile_open(filename,"w");
+matfile_varwrite(fd, "foo", "bar", %t);
+A=rand(10,10);
+matfile_varwrite(fd, "a", A, %t);
+matfile_close(fd);
+assert_checktrue(isfile(filename));
+
+fd = matfile_open(filename);
+assert_checkequal(matfile_listvar(fd),["foo";"a"]);
+matfile_close(fd);
+assert_checktrue(isfile(filename));
+
+loadmatfile(filename);
+assert_checkequal(foo,"bar");
+assert_checkequal(a,A);