@@ -375,3 +375,88 @@ func TestServerPreparedStatements(t *testing.T) {
375375 })
376376 }
377377}
378+
379+ func TestServerQueries (t * testing.T ) {
380+ port , perr := findEmptyPort ()
381+ require .NoError (t , perr )
382+
383+ s , serr := initTestServer (port )
384+ require .NoError (t , serr )
385+
386+ go s .Start ()
387+ defer s .Close ()
388+
389+ tests := []serverScriptTest {
390+ {
391+ name : "test that config variables are properly set" ,
392+ setup : []string {},
393+ assertions : []serverScriptTestAssertion {
394+ {
395+ query : "select @@hostname, @@port" ,
396+ //query: "select @@hostname, @@port, @@max_connections",
397+ isExec : false ,
398+ expectedRows : []any {
399+ sql.Row {"macbook.local" , port },
400+ },
401+ checkRows : func (t * testing.T , rows * gosql.Rows , expectedRows []any ) (bool , error ) {
402+ var resHostname string
403+ var resPort int
404+ var rowNum int
405+ for rows .Next () {
406+ if err := rows .Scan (& resHostname , & resPort ); err != nil {
407+ return false , err
408+ }
409+ if rowNum >= len (expectedRows ) {
410+ return false , nil
411+ }
412+ expectedRow := expectedRows [rowNum ].(sql.Row )
413+ require .Equal (t , expectedRow [0 ].(string ), resHostname )
414+ require .Equal (t , expectedRow [1 ].(int ), resPort )
415+ }
416+ return true , nil
417+ },
418+ },
419+ },
420+ },
421+ }
422+
423+ for _ , test := range tests {
424+ t .Run (test .name , func (t * testing.T ) {
425+ conn , cerr := dbr .Open ("mysql" , fmt .Sprintf (noUserFmt , address , port ), nil )
426+ require .NoError (t , cerr )
427+ defer conn .Close ()
428+ commonSetup := []string {
429+ "create database test_db;" ,
430+ "use test_db;" ,
431+ }
432+ commonTeardown := []string {
433+ "drop database test_db" ,
434+ }
435+ for _ , stmt := range append (commonSetup , test .setup ... ) {
436+ _ , err := conn .Exec (stmt )
437+ require .NoError (t , err )
438+ }
439+ for _ , assertion := range test .assertions {
440+ t .Run (assertion .query , func (t * testing.T ) {
441+ if assertion .skip {
442+ t .Skip ()
443+ }
444+ rows , err := conn .Query (assertion .query , assertion .args ... )
445+ if assertion .expectErr {
446+ require .Error (t , err )
447+ return
448+ }
449+ require .NoError (t , err )
450+
451+ ok , err := assertion .checkRows (t , rows , assertion .expectedRows )
452+ require .NoError (t , err )
453+ require .True (t , ok )
454+ })
455+ }
456+ for _ , stmt := range append (commonTeardown ) {
457+ _ , err := conn .Exec (stmt )
458+ require .NoError (t , err )
459+ }
460+ })
461+ }
462+ }
0 commit comments